iOS實現(xiàn)手機獲取驗證碼倒計時效果
更新時間:2017年07月24日 17:33:56 作者:zhao先生
這篇文章主要為大家詳細介紹了iOS實現(xiàn)手機獲取驗證碼倒計時效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
手機獲取驗證碼的倒計時效果,實現(xiàn)很簡單,附倒計時效果完整代碼
之前做項目使用的是NSTimer做的倒計時效果,效果不太好。今天學(xué)習(xí)了下用GCD做,效果還是不錯的。

關(guān)鍵代碼如下:(完整代碼)
//創(chuàng)建一個全局并非隊列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//創(chuàng)建一個定時器
_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
//配置定時器,每秒執(zhí)行
dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0);
//創(chuàng)建事件處理器
dispatch_source_set_event_handler(_timer, ^{
timeout --;
if (timeout <= 0) {
//定時器結(jié)束,關(guān)閉
dispatch_source_cancel(_timer);
_timer = nil;
//回到主線程刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
[_btn setTitle:@"獲取驗證碼" forState:UIControlStateNormal];
});
}
else
{
//回到主線程刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
[_btn setTitle:[NSString stringWithFormat:@"%ds后重新獲取",timeout] forState:UIControlStateNormal];
});
}
});
//啟動定時器
dispatch_resume(_timer);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IOS開發(fā)中禁止NavigationController的向右滑動返回
這篇文章主要介紹了IOS開發(fā)中禁止NavigationController的向右滑動返回的相關(guān)資料,需要的朋友可以參考下2017-03-03
iOS開發(fā)中Date Picker和UITool Bar控件的使用簡介
這篇文章主要介紹了iOS開發(fā)中Date Picker和UITool Bar控件的使用簡介,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-01-01
IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù)
這篇文章主要為大家詳細介紹了IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-12-12

