按钮在短时间内多次点击只执行一次(暴力点击)问题

本文为博主手写总结性文章,如若涉及版权问题,请与博主联系。

关于暴力点击问题解决涉及的主要代码:

@property BOOL violentClick;

self.violentClick = true;

 if (self.violentClick == true) {
        self.violentClick = false;
        [self performSelector:@selector(violentClickAction) withObject:nil afterDelay:0.5f];
//相关操作
}
- (void)violentClickAction{
    self.violentClick = true;
}

简单的说明一下思路问题:
        先定义一个BOOL型的变量,然后设置变量初始化值为true,接下来在点击操作执行之后的操作中做判断变量是否为true,如果为true说明是第一次点击,并且在第一次点击之后,变量改为false,设置延迟,再将变量改回为true。这样就保证了延迟期间内多次点击只执行一次。

下面举个例子:

#import "ViewController.h"

@interface ViewController ()
//创建BOOL类型变量
@property BOOL violentClick;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //初始化变量
    self.violentClick = true;
    
    //创建一个按钮
    UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 150, 50)];
    [btn setTitle:@"我是一个按钮" forState:UIControlStateNormal];
    [btn setBackgroundColor:[UIColor blueColor]];
    [btn addTarget:self action:@selector(btnAction) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}

-(void)btnAction{
    //判断变量是否为第一次点击
    if (self.violentClick) {
        self.violentClick = false;
        [self performSelector:@selector(violentClickAction) withObject:nil afterDelay:5.0f];
         NSLog(@"按钮被点击了");
    }
}

-(void)violentClickAction{
    self.violentClick = true;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

PS:因为实在不知道该如何展示效果,所以就不展示了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敛柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值