在使用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是否可以點擊。
如下圖
在類別中給button添加一個屬性
這時候這個屬性還是不能用的,因為類別中不能添加屬性。需要實現wtkFlag的set、get方法
runtime關聯對象添加屬性
這時候就有了wtkflag這個屬性了,在替換sendAction方法中使用即可。與繼承類似。