iOS實(shí)現(xiàn)手機(jī)獲取驗(yàn)證碼倒計(jì)時(shí)效果
手機(jī)獲取驗(yàn)證碼的倒計(jì)時(shí)效果,實(shí)現(xiàn)很簡單,附倒計(jì)時(shí)效果完整代碼
之前做項(xiàng)目使用的是NSTimer做的倒計(jì)時(shí)效果,效果不太好。今天學(xué)習(xí)了下用GCD做,效果還是不錯的。

關(guān)鍵代碼如下:(完整代碼)
//創(chuàng)建一個全局并非隊(duì)列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//創(chuàng)建一個定時(shí)器
_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
//配置定時(shí)器,每秒執(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) {
//定時(shí)器結(jié)束,關(guān)閉
dispatch_source_cancel(_timer);
_timer = nil;
//回到主線程刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
[_btn setTitle:@"獲取驗(yàn)證碼" forState:UIControlStateNormal];
});
}
else
{
//回到主線程刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
[_btn setTitle:[NSString stringWithFormat:@"%ds后重新獲取",timeout] forState:UIControlStateNormal];
});
}
});
//啟動定時(shí)器
dispatch_resume(_timer);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- IOS實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能(一)
- iOS獲取短信驗(yàn)證碼倒計(jì)時(shí)的兩種實(shí)現(xiàn)方法
- Swift實(shí)現(xiàn)iOS應(yīng)用中短信驗(yàn)證碼倒計(jì)時(shí)功能的實(shí)例分享
- IOS實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能(二)
- iOS 驗(yàn)證碼按鈕倒計(jì)時(shí)功能
- iOS獲取驗(yàn)證碼倒計(jì)時(shí)效果
- iOS發(fā)送驗(yàn)證碼倒計(jì)時(shí)應(yīng)用
- iOS實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)
- iOS登錄時(shí)驗(yàn)證手機(jī)號與倒計(jì)時(shí)發(fā)送驗(yàn)證碼問題詳解
相關(guān)文章
淺談iOS應(yīng)用中的相關(guān)正則及驗(yàn)證
下面小編就為大家?guī)硪黄獪\談iOS應(yīng)用中的相關(guān)正則及驗(yàn)證。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
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ù)
這篇文章主要為大家詳細(xì)介紹了IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12

