您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页RAC踩坑之cell重复调用

RAC踩坑之cell重复调用

来源:二三娱乐

在tableView中自定义的cell中,有一个按钮,按钮有一个点击方法clickBtn:,我们在控制器中调用这个点击方法。

[[cell rac_signalForSelector:@selector(clickBtn:)] subscribeNext:^(RACTuple * _Nullable x) {
      UIButton *btn = [[x allObjects] lastObject];
      btn.selected = !btn.isSelected;
 }];

然而,点击按钮,发现按钮没有什么变化,打断点之后发现,block中的代码走了两遍,导致结果不变。经过查资料,发现是cell的重用机制导致的。修改之后的代码

[[[cell rac_signalForSelector:@selector(clickBtn:)] takeUntil:cell.rac_prepareForReuseSignal] subscribeNext:^(RACTuple * _Nullable x) {
     UIButton *btn = [[x allObjects] lastObject];
     btn.selected = !btn.isSelected;
}];

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务