防止button连续点击

防止button连续点击的几个小技巧

在使用button的时候,用户往往不会按照开发人员想的来操作,比如连续点击。。。

下面介绍几个防止重复点击的方法

1、继承

自己创建一个button,继承于UIButton,然后重写点击方法sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event. 如下图


防止button连续点击_第1张图片

wtkFlag为自己添加的属性,用来判断当前button是否可以点击。为BOOL类型。点击5秒后,再把wtkFlag取反。就可以再次点击了。

2、runtime

使用runtime进行方法替换。在button的类别方法中,重写load方法,在load方法里边进行方法替换


自定义的方法如下


防止button连续点击_第2张图片

利用系统button的enable属性来控制button的点击频率。不过缺点就是enable这个属性在外部就不能再使用了。

如果想使用的话,可以使用runtime关联(associate)来添加属性,给button添加一个属性来记录当前button是否可以点击。

如下图


在类别中给button添加一个属性

这时候这个属性还是不能用的,因为类别中不能添加属性。需要实现wtkFlag的set、get方法


防止button连续点击_第3张图片
runtime关联对象添加属性

这时候就有了wtkflag这个属性了,在替换sendAction方法中使用即可。与继承类似。

demo连接 github.com/wangtongke/WTKButton.git

你可能感兴趣的:(防止button连续点击)