ios nstimer实现延时_IOS_IOS开发代码分享之用nstimer实现倒计时功能,用nstimer实现倒计时功能,废话 - phpStudy...
IOS開發(fā)代碼分享之用nstimer實現倒計時功能
用nstimer實現倒計時功能,廢話不多說,直接上代碼,詳細解釋請參照注釋
//
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
//
- (void)timerFireMethod:(NSTimer *)theTimer
{
BOOL timeStart = YES;
NSCalendar *cal = [NSCalendar currentCalendar];//定義一個NSCalendar對象
NSDateComponents *endTime = [[NSDateComponents alloc] init];??? //初始化目標時間...
NSDate *today = [NSDate date];??? //得到當前時間
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中取出年月日,時分秒,但是只能取一次
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]; //把目標時間裝載入date
//用來得到具體的時差,是為了統(tǒng)一成北京時間
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) {
//計時尚未結束,do_something
//??????? [_longtime setText:[NSString stringWithFormat:@"%@:%@:%@",d,fen,miao]];
} else if([d second] == 0) {
//計時結束 do_something
} else{
//計時器失效
[theTimer invalidate];
}
}
相關閱讀:
JavaScript的removeChild()函數用法詳解
win7系統(tǒng)電腦有鼠標無鍵盤問題的解決辦法
Zend Framework教程之Zend_Helpers動作助手ViewRenderer用法詳解
AngularJS中取消對HTML片段轉義的方法例子
jQuery Mobile 導航欄代碼
JavaScript中日期函數的相關操作知識
Android中getActivity()為null的解決辦法
Android學習之Flux架構入門
Win8怎么修改C盤的名字 Win8修改C盤的名字教程
CSS工作原理及CSS規(guī)則命名介紹
讓table變成exls的示例代碼
一句代碼解決css ie8兼容性問題
網頁切圖的CSS和布局經驗與要點
JS截取與分割字符串常用技巧總結
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的ios nstimer实现延时_IOS_IOS开发代码分享之用nstimer实现倒计时功能,用nstimer实现倒计时功能,废话 - phpStudy...的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: apache配置证书后 tomcat无法
 - 下一篇: unitywebrequest本地加载_