倒計時定時器

這裏寫圖片描述
項目要求 根據後臺返回的時間戳 進行商品拍賣定時倒計時
後臺返回的時間格式是:yyyy-MM-dd HH:mm:ss
寫了一個時間轉換工具將後臺返回的時間字符串轉換爲指定的時間格式如下:

+ (NSTimeInterval)timeIntervalSinceNowWithDateStr:(NSString *)dateStr {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSDate *date = [formatter dateFromString:dateStr];
    return [date timeIntervalSinceNow];
}

返回得到的是一個NSTimeInterval 類型的時間值
將這個時間值轉化爲固定樣式的時間格式 代碼如下:

+ (NSString *)intervalTimeStrWithTimeInterval:(NSTimeInterval)timeInterval {
    if (timeInterval < 0) {
        return @"00:00:00";
    }
    int interval = timeInterval;
    NSString *intervalStr = @"";
    NSString *hh = [NSString stringWithFormat:@"%d",interval/3600];
    if ([hh length] == 1)
    {
        hh = [NSString stringWithFormat:@"0%@",hh];
    }
    NSString *mm = [NSString stringWithFormat:@"%d",(interval/60)%60];
    if ([mm length] == 1)
    {
        mm = [NSString stringWithFormat:@"0%@",mm];
    }
    NSString *ss = [NSString stringWithFormat:@"%d",interval%60];
    if ([ss length] == 1)
    {
        ss = [NSString stringWithFormat:@"0%@",ss];
    }
    intervalStr = [NSString stringWithFormat:@"%@:%@:%@",hh,mm,ss];
    return intervalStr;
}

實現定時器 創建定時器

- (NSTimer *)auctionTimer {
    if (!_auctionTimer) {
        _auctionTimer = [CZTimerTool scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(auctionTimerAction) userInfo:nil repeats:YES];
    }
    return _auctionTimer;
}

通過時間的截取 實現定時器顯示效果

-(void)auctionTimerAction
{
    self.timeInterval -= 1;
    NSString *timeText = [CZDateTool intervalTimeStrWithTimeInterval:self.timeInterval];
    self.hourLabel.text = [timeText substringWithRange:NSMakeRange(0, 2)];
    self.minuteLabel.text = [timeText substringWithRange:NSMakeRange(3, 2)];
    self.secondLabel.text = [timeText substringWithRange:NSMakeRange(6, 2)];
}

這樣就實現了上圖的定時器效果。

發佈了46 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章