在项目中常常会遇到这样的问题:
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秒在设置
});
}
}原文地址:http://blog.csdn.net/u011404663/article/details/45828107