iOS中封裝常見(jiàn)的倒計(jì)時(shí)(獲取驗(yàn)證碼均驶、支付倒計(jì)時(shí)昏兆、商城倒計(jì)時(shí))

? ? ? ? ?做一朵白蓮花吧,在物欲橫流的社會(huì)底層靜靜發(fā)育妇穴,不沾染一點(diǎn)灰塵爬虱,慢慢伸出理想的枝干隶债,穿越爾虞我詐的茂密荷葉,在瀲滟的水面上開(kāi)出潔白的花瓣跑筝,笑對(duì)陽(yáng)光死讹,笑對(duì)夢(mèng)雨,笑對(duì)秋風(fēng)曲梗,笑對(duì)看客赞警,然后結(jié)成一個(gè)純凈的心靈蓮蓬,在里面珍藏潔白如玉的理想蓮子虏两。 ?

? ? ? ? ?之所以愧旦,寫(xiě)這篇文章,是本菜鳥(niǎo)覺(jué)得獲取驗(yàn)證碼倒計(jì)時(shí)這個(gè)知識(shí)點(diǎn)貌似定罢、大概笤虫、也許,每個(gè)App基本上都會(huì)遇到的祖凫,為了不再寫(xiě)那么都煩躁的代碼琼蚯,所有上來(lái)與大家共勉一下,希望大家多多指教蝙场。又因?yàn)樽罱?xiàng)目遇到支付倒計(jì)時(shí)凌停,所有也把這個(gè)方法做了修改一起分享出來(lái)。

------------------------------使用方法------------------------------------

一:最常見(jiàn)的:注冊(cè)售滤、忘記密碼的時(shí)候獲取驗(yàn)證碼倒計(jì)時(shí)

看起來(lái)是不是很爽罚拟,代碼分離出來(lái),注冊(cè)完箩、忘記密碼等等獲取驗(yàn)證碼只要幾行代碼就解決了

二:支付過(guò)程支付時(shí)間倒計(jì)時(shí)赐俗、商城活動(dòng)倒計(jì)時(shí)



------------------------------.h------------------------------------

#import

@interfaceCountDown :NSObject

///支付過(guò)程倒計(jì)時(shí)商城倒計(jì)時(shí)

-(void)countDownWithSeparate:(NSInteger)totalTime completeBlock:(void(^)(NSIntegerday,NSIntegerhour,NSIntegerminute,NSIntegersecond))completeBlock;

///獲取驗(yàn)證碼倒計(jì)時(shí)

-(void)countDownWithTime:(NSInteger)totalTime completeBlock:(void(^)(NSIntegercountDown))completeBlock;

///主動(dòng)銷(xiāo)毀定時(shí)器

-(void)destoryTimer;

@end


------------------------------.m------------------------------------

#import"CountDown.h"

@interfaceCountDown()

@property(nonatomic,retain)dispatch_source_ttimer;

@end

@implementationCountDown

#pragma mark支付過(guò)程倒計(jì)時(shí) ? ?商城倒計(jì)時(shí)

-(void)countDownWithSeparate:(NSInteger)totalTime completeBlock:(void(^)(NSIntegerday,NSIntegerhour,NSIntegerminute,NSIntegersecond))completeBlock{

if(_timer==nil) {

__blockNSIntegertimeout = totalTime;

if(timeout !=0) {

dispatch_queue_tqueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

_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);

dispatch_source_set_event_handler(_timer, ^{

if(timeout <=0){

dispatch_source_cancel(_timer);

_timer=nil;

dispatch_async(dispatch_get_main_queue(), ^{

completeBlock(0,0,0,0);

});

}else{

NSIntegertotalTime = timeout;

NSIntegers =1;

NSIntegerm = s *60;

NSIntegerh = m *60;

NSIntegerd = h *24;

NSIntegerday = totalTime / d;//天

NSIntegerhour = (totalTime - day * d) / h;//時(shí)考慮天1天23小時(shí)59分鐘59秒

//NSInteger onlyhour = totalTime / h;//時(shí)不考慮天只考慮到小時(shí)28小時(shí)59分鐘59秒

NSIntegerminute = (totalTime - day * d - hour * h) / m;//分

NSIntegersecond = (totalTime - day * d - hour * h - minute * m) / s;//秒

dispatch_async(dispatch_get_main_queue(), ^{

completeBlock(day,hour,minute,second);

});

//不考慮天的回調(diào)28小時(shí)59分鐘59秒

//dispatch_async(dispatch_get_main_queue(), ^{

//completeBlock(0,onlyhour,minute,second);

//});

timeout--;

}

});

dispatch_resume(_timer);

}

}

}

#pragma mark獲取驗(yàn)證碼倒計(jì)時(shí)

-(void)countDownWithTime:(NSInteger)totalTime completeBlock:(void(^)(NSIntegercountDown))completeBlock

{

if(_timer==nil) {

__blockNSIntegertimeout = totalTime;

if(timeout !=0) {

dispatch_queue_tqueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

_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);

dispatch_source_set_event_handler(_timer, ^{

if(timeout <=0){

dispatch_source_cancel(_timer);

_timer=nil;

dispatch_async(dispatch_get_main_queue(), ^{

completeBlock(0);

});

}else{

dispatch_async(dispatch_get_main_queue(), ^{

completeBlock(timeout);

});

timeout--;

}

});

dispatch_resume(_timer);

}

}

}

#pragma mark主動(dòng)銷(xiāo)毀定時(shí)器

-(void)destoryTimer

{

if(_timer){

dispatch_source_cancel(_timer);

_timer=nil;

}

}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市弊知,隨后出現(xiàn)的幾起案子阻逮,更是在濱河造成了極大的恐慌,老刑警劉巖秩彤,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叔扼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡漫雷,警方通過(guò)查閱死者的電腦和手機(jī)瓜富,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)降盹,“玉大人与柑,你說(shuō)我怎么就攤上這事。” “怎么了价捧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵丑念,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我结蟋,道長(zhǎng)脯倚,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任椎眯,我火速辦了婚禮挠将,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘编整。我一直安慰自己舔稀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布掌测。 她就那樣靜靜地躺著内贮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪汞斧。 梳的紋絲不亂的頭發(fā)上夜郁,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音粘勒,去河邊找鬼竞端。 笑死,一個(gè)胖子當(dāng)著我的面吹牛庙睡,可吹牛的內(nèi)容都是我干的事富。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乘陪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼统台!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起啡邑,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贱勃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后谤逼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贵扰,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年流部,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戚绕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贵涵,死狀恐怖列肢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宾茂,我是刑警寧澤瓷马,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站跨晴,受9級(jí)特大地震影響欧聘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜端盆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一怀骤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧焕妙,春花似錦蒋伦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至末患,卻和暖如春研叫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背璧针。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工嚷炉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人探橱。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓申屹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親走搁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子独柑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容