ios 控制button点击事件的触发频率

在项目中常常会遇到这样的问题:

button点击就会触发相应的点击事件,比如说是向向服务器发送网络请求或者弹出弹框。

但如果用户点击频率很快的话,那就会不停的触发点击事件,从而使UI错乱。

对于这种问题我的解决方案是:设置布尔值。

(1)对于与服务器有交互的点击事件:点击的时候判断bool值;在发送请求前设置一次;服务器得到应答后改变bool值即可。

(2)对于无服务器交互点击事件:点击的时候判断;执行弹框前设置;弹框完成后延时0.25秒在设置。

直接上代码

....

@property (nonatomic,assign) BOOL hasLiked;

....


 - (void)viewWillAppear:(BOOL)animated

{

    [super viewWillAppear:animated];

    self.hasLiked = YES;

}



- (void)btnClick:(UIButton *)button

{

    __weak VSwiperViewController *weakSelf = self;

    if (button.tag == 500) {

        NSInteger userAccountScore = [[VUserInfoEntityManager sharedManager] getPrivateUserInfo].score;


        if (userAccountScore <_fpzGiftprice && self.hasLiked == YES) {  // 点击的时候判断hasLiked 

            self.hasLiked = NO;// 执行弹框前设置

        

            [weakSelf showNotEnoughCoinsAlertView];

            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

             weakSelf.hasLiked = YES; //弹框完成后延时0.25秒在设置

            });

            

        }

}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。