RAC rac_signalForControlEvents Button方法多次触发的问题

项目中使用了RAC, 使用过程中遇到了很多坑.

其中一个比较普遍的就是:
在cell中使用之后,在cell重用的时候, 每次刷新一遍cell, button就会多触发一次, 造成button的多次触发;
若跳转到另一个页面, 就会多次创建VC, 造成冗余及影响.

解决方法:

通过takeUntil:someSignal来终止cell.button之前的signal了:
takeUntil :someSignal的作用是当someSignal sendNext时,当前的signal就sendCompleted,someSignal就像一个裁判,哨声响起就意味着比赛终止:

添加takeUntil: 方法就可以防止多次调用触发了.

[[[cell.loginButton rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:cell.rac_prepareForReuseSignal] subscribeNext:^(__kindof UIControl * _Nullable x) {
   
}];

猜你喜欢

转载自blog.csdn.net/xNickname666/article/details/82685900
今日推荐