iOS解決按鈕短期內屢次點擊只觸發一次事件方法

在上家公司作項目的時候,作了個60秒獲取驗證碼的功能,當時作了個定時器,按鈕觸發定時器,邏輯來說都是沒問題的,可是實際操做的時候,惡意的在短期內屢次點擊那個獲取驗證碼按鈕,按鈕的點擊事件被調用了屢次,定時器從而也調用屢次,原本一秒減一的事件變成了一秒減多,而且減到0後繼續調用方法,直到響應點擊次數調用完,這徹底不符合咱們的心意。 時隔2月,我在新公司工做了,回頭來看這個問題,爲了解決這個問題,我在百度上查了許多資料,解決後將解決辦法寫入本身的博客,和你們分享本身的技術,也爲本身一直想寫博客作個開始,記錄開發中遇到的問題,慢慢成長。orm

好了,廢話講完,開始進入主題: 1.一個60秒獲取驗證碼的功能,先寫好了按鈕,在觸發按鈕的方法中作以下操做:事件

-(void)getBtnAction:(UIButton *)btn{ //獲取驗證碼按鈕點擊開發

// 在0.2秒時間間隔內屢次點擊只響應一次點擊事件, todoSomething就是咱們具體要實現的方法get

[[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(todoSomething:) object:btn]; [self performSelector:@selector(todoSomething:) withObject:btn afterDelay:0.2f]; }博客

-(void)todoSomething:(UIButton *)btn{it

//這裏面寫timer,timer調本身的方法io

}form

2.到這裏就結束了,關鍵的就那一步:驗證碼

[[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(todoSomething:) object:btn]; [self performSelector:@selector(todoSomething:) withObject:btn afterDelay:0.2f];class

但願對你們有所幫助。

相關文章
相關標籤/搜索