美文网首页iOS开发常用知识点
RAC踩坑之cell重复调用

RAC踩坑之cell重复调用

作者: 贼海鸥 | 来源:发表于2019-03-13 16:33 被阅读0次

在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;
}];

相关文章

  • RAC踩坑之cell重复调用

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

  • 晚饭的茶真强劲

    记录一下今天踩过的坑rac使用的时候我们经常使用rac_signalForSelector 来抓代理方法. 有时候...

  • 重复踩坑

    都说吃一堑长一智,可有些人就是不长记性。 前几天耿马的客户找到公司来,要求退还他在2020年4月交的两万元品牌保证...

  • # [iOS 预估值estimatedHeight实现head

    iOS 预估值estimatedHeight实现headerView和cell自适应高度布局机制踩坑

  • iOS-解决使用ReactiveCocoa时,点击Cell上Bu

    问题一:使用RAC时点击Cell上Button了连续触发事件 解决方法:添加takeUntil:cell.rac_...

  • 填坑C++模板类

    大神们常说不要重复造轮子,小编说不要重复踩坑,希望小编踩过得坑大家不要再踩。 模板类的编译和普通类是截然不同的,所...

  • 吃一堑长一智

    首先,要先吃一堑,俗称“踩坑”。 踩过坑,吃过亏,从中吸取一点教训,避免重复犯错误,这坑也算没有白踩。 最近看到一...

  • iOS Cell重用导致RAC多次调用

    在cell里使用rac时会因为cell的重用导致singal被多次触发,这个时候需要在绑定的cell signal...

  • 2019-05-06

    ReactNative踩坑日志——OnPress随着render()执行被自动调用? 在ReactNative中,...

  • swift4.0 cell重用导致ReactiveCocoa(R

    swift4.0 cell重用导致ReactiveCocoa(RAC) cell上Button点击事件多次触发问题...

网友评论

    本文标题:RAC踩坑之cell重复调用

    本文链接:https://www.haomeiwen.com/subject/udjtmqtx.html