ios nstimer实现延时_IOS_IOS开发代码分享之用nstimer实现倒计时功能,用nstimer实现倒计时功能,废话 - phpStudy...
IOS開發(fā)代碼分享之用nstimer實(shí)現(xiàn)倒計(jì)時(shí)功能
用nstimer實(shí)現(xiàn)倒計(jì)時(shí)功能,廢話不多說(shuō),直接上代碼,詳細(xì)解釋請(qǐng)參照注釋
//
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
//
- (void)timerFireMethod:(NSTimer *)theTimer
{
BOOL timeStart = YES;
NSCalendar *cal = [NSCalendar currentCalendar];//定義一個(gè)NSCalendar對(duì)象
NSDateComponents *endTime = [[NSDateComponents alloc] init];??? //初始化目標(biāo)時(shí)間...
NSDate *today = [NSDate date];??? //得到當(dāng)前時(shí)間
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *dateString = [dateFormatter dateFromString:todate];
NSString *overdate = [dateFormatter stringFromDate:dateString];
//??? NSLog(@"overdate=%@",overdate);
static int year;
static int month;
static int day;
static int hour;
static int minute;
static int second;
if(timeStart) {//從NSDate中取出年月日,時(shí)分秒,但是只能取一次
year = [[overdate substringWithRange:NSMakeRange(0, 4)] intValue];
month = [[overdate substringWithRange:NSMakeRange(5, 2)] intValue];
day = [[overdate substringWithRange:NSMakeRange(8, 2)] intValue];
hour = [[overdate substringWithRange:NSMakeRange(11, 2)] intValue];
minute = [[overdate substringWithRange:NSMakeRange(14, 2)] intValue];
second = [[overdate substringWithRange:NSMakeRange(17, 2)] intValue];
timeStart= NO;
}
[endTime setYear:year];
[endTime setMonth:month];
[endTime setDay:day];
[endTime setHour:hour];
[endTime setMinute:minute];
[endTime setSecond:second];
NSDate *overTime = [cal dateFromComponents:endTime]; //把目標(biāo)時(shí)間裝載入date
//用來(lái)得到具體的時(shí)差,是為了統(tǒng)一成北京時(shí)間
unsigned int unitFlags = NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit| NSHourCalendarUnit| NSMinuteCalendarUnit| NSSecondCalendarUnit;
NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:overTime options:0];
NSString *t = [NSString stringWithFormat:@"%d", [d day]];
NSString *h = [NSString stringWithFormat:@"%d", [d hour]];
NSString *fen = [NSString stringWithFormat:@"%d", [d minute]];
if([d minute] < 10) {
fen = [NSString stringWithFormat:@"0%d",[d minute]];
}
NSString *miao = [NSString stringWithFormat:@"%d", [d second]];
if([d second] < 10) {
miao = [NSString stringWithFormat:@"0%d",[d second]];
}
//??? NSLog(@"===%@天 %@:%@:%@",t,h,fen,miao);
[_longtime setText:[NSString stringWithFormat:@"%@天 %@:%@:%@",t,h,fen,miao]];
if([d second] > 0) {
//計(jì)時(shí)尚未結(jié)束,do_something
//??????? [_longtime setText:[NSString stringWithFormat:@"%@:%@:%@",d,fen,miao]];
} else if([d second] == 0) {
//計(jì)時(shí)結(jié)束 do_something
} else{
//計(jì)時(shí)器失效
[theTimer invalidate];
}
}
相關(guān)閱讀:
JavaScript的removeChild()函數(shù)用法詳解
win7系統(tǒng)電腦有鼠標(biāo)無(wú)鍵盤問題的解決辦法
Zend Framework教程之Zend_Helpers動(dòng)作助手ViewRenderer用法詳解
AngularJS中取消對(duì)HTML片段轉(zhuǎn)義的方法例子
jQuery Mobile 導(dǎo)航欄代碼
JavaScript中日期函數(shù)的相關(guān)操作知識(shí)
Android中g(shù)etActivity()為null的解決辦法
Android學(xué)習(xí)之Flux架構(gòu)入門
Win8怎么修改C盤的名字 Win8修改C盤的名字教程
CSS工作原理及CSS規(guī)則命名介紹
讓table變成exls的示例代碼
一句代碼解決css ie8兼容性問題
網(wǎng)頁(yè)切圖的CSS和布局經(jīng)驗(yàn)與要點(diǎn)
JS截取與分割字符串常用技巧總結(jié)
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的ios nstimer实现延时_IOS_IOS开发代码分享之用nstimer实现倒计时功能,用nstimer实现倒计时功能,废话 - phpStudy...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apache配置证书后 tomcat无法
- 下一篇: unitywebrequest本地加载_