IOS倒计时器

iOS 码拜 7年前 (2015-11-13) 865次浏览
想做一个IOS倒计时器,00:30:00,点击开始 就倒计时,切换界面,时间还在走,再次打开,时间继续。求方法,不胜感激。
解决方案:40分
可以通过两个时间点比较来实现,一个时间点是“目标时间”, 另一个就是“当前时间
所谓的“目标时间”就是点击开始时的时间+你要倒计时的时间。假如你想当你离开后并再次打开时,倒计时还会继续的话,你就需要记住这个”目标时间“。用这个目标时间与当前时间比较时间差
使用NSTimer 定时执行时间差计算。伪代码

//////每隔一秒执行一次
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFire:) userInfo:nil repeats:YES];
- (void)timerFire:(NSTimer *)timer
{
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [[NSDateComponents alloc] init];
    [components setYear:2014];
    [components setMonth:12];
    [components setDay:12];
    [components setHour:12];
    [components setMinute:0];
    [components setSecond:0];
    NSDate *fireDate = [calendar dateFromComponents:components];//目标时间
    NSDate *today = [NSDate date];//当前时间
    unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
     NSDateComponents *d = [calendar components:unitFlags fromDate:today toDate:fireDate options:0];//计算时间差
    auctionTime.text = [NSString stringWithFormat:@"%d天%d小时%d%分%d秒", [d day], [d hour], [d minute], [d second]];//倒计时显示
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明IOS倒计时器
喜欢 (0)
[1034331897@qq.com]
分享 (0)