小編給大家分享一下iOS中如何實(shí)現(xiàn)倒計(jì)時(shí)效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
天山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
示例代碼簡(jiǎn)單易懂:
#import <uikit uikit.h=""> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *dayLabel; @property (weak, nonatomic) IBOutlet UILabel *hourLabel; @property (weak, nonatomic) IBOutlet UILabel *minuteLabel; @property (weak, nonatomic) IBOutlet UILabel *secondLabel; @end</uikit>
#import "ViewController.h" @interface ViewController () { dispatch_source_t _timer; } @end @implementation ViewController /** * 獲取當(dāng)天的年月日的字符串 * 這里測(cè)試用 * @return 格式為年-月-日 */ -(NSString *)getyyyymmdd{ NSDate *now = [NSDate date]; NSDateFormatter *formatDay = [[NSDateFormatter alloc] init]; formatDay.dateFormat = @"yyyy-MM-dd"; NSString *dayStr = [formatDay stringFromDate:now]; return dayStr; } - (void)viewDidLoad { [super viewDidLoad]; NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *endDate = [dateFormatter dateFromString:[self getyyyymmdd]]; NSDate *endDate_tomorrow = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:([endDate timeIntervalSinceReferenceDate] + 24*3600)]; NSDate *startDate = [NSDate date]; NSTimeInterval timeInterval =[endDate_tomorrow timeIntervalSinceDate:startDate]; if (_timer==nil) { __block int timeout = timeInterval; //倒計(jì)時(shí)時(shí)間 if (timeout!=0) { dispatch_queue_t queue = 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); //每秒執(zhí)行 dispatch_source_set_event_handler(_timer, ^{ if(timeout<=0){ //倒計(jì)時(shí)結(jié)束,關(guān)閉 dispatch_source_cancel(_timer); _timer = nil; dispatch_async(dispatch_get_main_queue(), ^{ self.dayLabel.text = @""; self.hourLabel.text = @"00"; self.minuteLabel.text = @"00"; self.secondLabel.text = @"00"; }); }else{ int days = (int)(timeout/(3600*24)); if (days==0) { self.dayLabel.text = @""; } int hours = (int)((timeout-days*24*3600)/3600); int minute = (int)(timeout-days*24*3600-hours*3600)/60; int second = timeout-days*24*3600-hours*3600-minute*60; dispatch_async(dispatch_get_main_queue(), ^{ if (days==0) { self.dayLabel.text = @"0天"; }else{ self.dayLabel.text = [NSString stringWithFormat:@"%d天",days]; } if (hours<10) { self.hourLabel.text = [NSString stringWithFormat:@"0%d",hours]; }else{ self.hourLabel.text = [NSString stringWithFormat:@"%d",hours]; } if (minute<10) { self.minuteLabel.text = [NSString stringWithFormat:@"0%d",minute]; }else{ self.minuteLabel.text = [NSString stringWithFormat:@"%d",minute]; } if (second<10) { self.secondLabel.text = [NSString stringWithFormat:@"0%d",second]; }else{ self.secondLabel.text = [NSString stringWithFormat:@"%d",second]; } }); timeout--; } }); dispatch_resume(_timer); } } } <span style="font-family: Arial, Verdana, sans-serif;">效果:</span>
以上是“iOS中如何實(shí)現(xiàn)倒計(jì)時(shí)效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
標(biāo)題名稱:iOS中如何實(shí)現(xiàn)倒計(jì)時(shí)效果
文章轉(zhuǎn)載:http://bm7419.com/article2/goeeic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、用戶體驗(yàn)、網(wǎng)站制作、全網(wǎng)營(yíng)銷推廣、電子商務(wù)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)