在使用button的时候,用户往往不会按照开发人员想的来操作,比如连续点击。。。
下面介绍几个防止重复点击的方法
1、继承
自己创建一个button,继承于UIButton,然后重写点击方法sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event. 如下图
wtkFlag为自己添加的属性,用来判断当前button是否可以点击。为BOOL类型。点击5秒后,再把wtkFlag取反。就可以再次点击了。
2、runtime
使用runtime进行方法替换。在button的类别方法中,重写load方法,在load方法里边进行方法替换
自定义的方法如下
利用系统button的enable属性来控制button的点击频率。不过缺点就是enable这个属性在外部就不能再使用了。
如果想使用的话,可以使用runtime关联(associate)来添加属性,给button添加一个属性来记录当前button是否可以点击。
如下图
这时候这个属性还是不能用的,因为类别中不能添加属性。需要实现wtkFlag的set、get方法
这时候就有了wtkflag这个属性了,在替换sendAction方法中使用即可。与继承类似。