ios 實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式
方法1:使用NSTimer來(lái)實(shí)現(xiàn)
主要使用的是NSTimer的scheduledTimerWithTimeInterval方法來(lái)每1秒執(zhí)行一次timeFireMethod函數(shù),timeFireMethod進(jìn)行倒計(jì)時(shí)的一些操作,完成時(shí)把timer給invalidate掉就ok了,代碼如下:
secondsCountDown = 60;//60秒倒計(jì)時(shí) countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES]; -(void)timeFireMethod{ secondsCountDown--; if(secondsCountDown==0){ [countDownTimer invalidate]; } }
方法2:使用GCD來(lái)實(shí)現(xiàn)
代碼如下:
__block int timeout=300; //倒計(jì)時(shí)時(shí)間 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒執(zhí)行 dispatch_source_set_event_handler(_timer, ^{ if(timeout<=0){ //倒計(jì)時(shí)結(jié)束,關(guān)閉 dispatch_source_cancel(_timer); dispatch_release(_timer); dispatch_async(dispatch_get_main_queue(), ^{ //設(shè)置界面的按鈕顯示 根據(jù)自己需求設(shè)置 。。。。。。。。 }); }else{ int minutes = timeout / 60; int seconds = timeout % 60; NSString *strTime = [NSString stringWithFormat:@"%d分%.2d秒后重新獲取驗(yàn)證碼",minutes, seconds]; dispatch_async(dispatch_get_main_queue(), ^{ //設(shè)置界面的按鈕顯示 根據(jù)自己需求設(shè)置 。。。。。。。。 }); timeout--; } }); dispatch_resume(_timer);
以上所述是小編給大家介紹的ios實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- IOS開(kāi)發(fā)代碼分享之用nstimer實(shí)現(xiàn)倒計(jì)時(shí)功能
- IOS實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能(一)
- IOS關(guān)于大型網(wǎng)站搶購(gòu)、距活動(dòng)結(jié)束,剩余時(shí)間倒計(jì)時(shí)的實(shí)現(xiàn)代碼
- iOS中實(shí)現(xiàn)簡(jiǎn)單易懂秒殺倒計(jì)時(shí)/倒計(jì)時(shí)代碼
- iOS中讓多個(gè)cell上都出現(xiàn)倒計(jì)時(shí)的分析與實(shí)現(xiàn)
- iOS實(shí)現(xiàn)毫秒倒計(jì)時(shí)的方法詳解
- iOS獲取短信驗(yàn)證碼倒計(jì)時(shí)的兩種實(shí)現(xiàn)方法
- iOS啟動(dòng)頁(yè)倒計(jì)時(shí)跳過(guò)按鈕功能
- Swift實(shí)現(xiàn)iOS應(yīng)用中短信驗(yàn)證碼倒計(jì)時(shí)功能的實(shí)例分享
- iOS實(shí)現(xiàn)秒殺活動(dòng)倒計(jì)時(shí)
相關(guān)文章
iOS版微信朋友圈識(shí)別圖片位置信息 如何實(shí)現(xiàn)?
這篇文章主要為大家詳細(xì)介紹了iOS版微信朋友圈識(shí)別圖片位置信息的實(shí)現(xiàn)方法2016-10-10IOS 中UITextField和UITextView中字符串為空和空格的解決辦法
這篇文章主要介紹了IOS 中UITextField和UITextView中字符串為空和空格的解決辦法的相關(guān)資料,需要的朋友可以參考下2017-07-07淺談iOS關(guān)于頭文件的導(dǎo)入問(wèn)題
本篇文章主要介紹了淺談iOS關(guān)于頭文件的導(dǎo)入問(wèn)題,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04IOS開(kāi)發(fā)之路--C語(yǔ)言數(shù)組和字符串
數(shù)組在C語(yǔ)言中有著特殊的地位,它有很多特性,例如它的存儲(chǔ)是連續(xù)的,數(shù)組的名稱(chēng)就是數(shù)組的地址等。而在C語(yǔ)言中是沒(méi)有String類(lèi)型的,那么如果要表示一個(gè)字符串,就必須使用字符串?dāng)?shù)組2014-08-08講解iOS開(kāi)發(fā)中UITableView列表設(shè)計(jì)的基本要點(diǎn)
這篇文章主要介紹了講解iOS開(kāi)發(fā)中UITableView列表設(shè)計(jì)的基本要點(diǎn),其中對(duì)列表行操作的常用操作舉例是iOS開(kāi)發(fā)中經(jīng)常用到的基礎(chǔ),需要的朋友可以參考下2016-01-01iOS開(kāi)發(fā)-自定義相機(jī)實(shí)例(仿微信)
這篇文章主要介紹了iOS開(kāi)發(fā)-自定義相機(jī)實(shí)例(仿微信),實(shí)例分析了ios 自定義相機(jī)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03詳解Objective-C設(shè)計(jì)模式編程中對(duì)備忘錄模式的運(yùn)用
這篇文章主要介紹了Objective-C設(shè)計(jì)模式編程中對(duì)備忘錄模式的運(yùn)用,文中結(jié)合了Cocoa框架下應(yīng)用的實(shí)例來(lái)加以講解,需要的朋友可以參考下2016-03-03ios利用RunLoop原理實(shí)現(xiàn)去監(jiān)控卡頓實(shí)例詳解
這篇文章主要為大家介紹了ios利用RunLoop原理實(shí)現(xiàn)去監(jiān)控卡頓實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09IOS開(kāi)發(fā)UIPasteboard類(lèi)的粘貼板全面詳解
這篇文章主要為大家介紹了IOS開(kāi)發(fā)UIPasteboard類(lèi)的粘貼板全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06