1. 程式人生 > 其它 >OC Extension CountDownManager(倒計時)

OC Extension CountDownManager(倒計時)

技術標籤:UI的封裝iosobjective-cswiftxcode

**

一直覺得自己寫的不是技術,而是情懷,一個個的教程是自己這一路走來的痕跡。靠專業技能的成功是最具可複製性的,希望我的這條路能讓你們少走彎路,希望我能幫你們抹去知識的蒙塵,希望我能幫你們理清知識的脈絡,希望未來技術之巔上有你們也有我。

**

說明使用之前,先建立物件例項化物件,通過物件呼叫方法進行使用

@property (nonatomic,strong) CountDownManager *aloneCountDown;
self.aloneCountDown = [CountDownManager new];

說明

/**
/**
 倒計時  10位時間戳
 
 @param finishTimeStamp 結束時間戳
 @param adjust 校驗時間
 @param completeBlock 根據結束時間拿到倒計時
 */
-(void)countDownWithFinishTimeTemStamp:(long long)finishTimeStamp adjust:(double)adjust completeBlock:(void (^)(NSString *,BOOL isFinish))completeBlock;

使用

    //傳入的10位時間棧 - 當前時間  = 剩下的倒計時
    [
self.aloneCountDown countDownWithFinishTimeTemStamp: 1899228800 adjust:0 completeBlock:^(NSString *timeStr, BOOL isFinish) { if (isFinish) { NSLog(@"已結束"); } NSLog(@"timeStr - %@",timeStr); }];

在這裡插入圖片描述

/**
 倒計時  13位時間戳
 
 @param finishTimeStamp 結束時間戳
 @param adjust 校驗時間
 @param completeBlock 根據結束時間拿到倒計時
 */
-(void)countDownWithFinishTimeTemThreeStamp:(long long)finishTimeStamp adjust:(double)adjust completeBlock:(void (^)(NSString *,BOOL isFinish))completeBlock;

使用

    //傳入的13位時間棧 - 當前時間  = 剩下的倒計時
    [self.aloneCountDown countDownWithFinishTimeTemThreeStamp:1564228800000 adjust:0 completeBlock:^(NSString *timeStr, BOOL isFinish) {
      if (isFinish) {
        NSLog(@"已結束");
      }
      NSLog(@"timeStr - %@",timeStr);
    }];

在這裡插入圖片描述

/**
 順計時  10位時間戳
 @param starTimeStamp 開始的時間戳 是秒
 @param completeBlock 已經過了多長時間的字串,是否已經到時間了
 */

-(void)clockwiseHasPasstimeWithStratTimeTemStamp:(long long)starTimeStamp adjust:(double)adjust  completeBlock:(void (^)(NSString * dateStr))completeBlock;

使用

    //1560852960   [[NSDate date] timeIntervalSince1970];  當前10位時間戳
    //當前時間戳- 傳入10位時間戳 = 得出的時間
    [self.aloneCountDown clockwiseHasPasstimeWithStratTimeTemStamp:1560852960 adjust:0 completeBlock:^(NSString *dateStr) {
      NSLog(@"timeStr - %@",dateStr);
    }];

在這裡插入圖片描述

/**
 順計時  13位時間戳
 @param starTimeStamp 開始的時間戳 是毫秒
 @param completeBlock 已經過了多長時間的字串,是否已經到時間了
 */

-(void)clockwiseHasPasstimeWithStratTimeTemThreeStamp:(long long)starTimeStamp adjust:(double)adjust  completeBlock:(void (^)(NSString * dateStr))completeBlock;

使用

    //1560852960000   [[NSDate date] timeIntervalSince1970];  當前13位時間戳
    //當前時間戳- 傳入13位時間戳 = 得出的時間
    [self.aloneCountDown clockwiseHasPasstimeWithStratTimeTemThreeStamp:1560852960000 adjust:0 completeBlock:^(NSString *dateStr) {
      NSLog(@"timeStr - %@",dateStr);
    }];

在這裡插入圖片描述

/**
 順計時  開始時間跑到結束時間遞增 10位
 
 @param starTimeStamp 開始的時間戳 是秒
 @param finishTimeStamp 結束的時間戳,是秒
 @param completeBlock 已經過了多長時間的字串,是否已經到時間了
 */

-(void)countDownHasPasstimeWithStratTimeTemStamp:(long long)starTimeStamp finishTimeStamp:(long long)finishTimeStamp adjust:(double)adjust  completeBlock:(void (^)(NSString * dateStr,BOOL isFinish))completeBlock;

使用

    //1560852960   [[NSDate date] timeIntervalSince1970];  當前10位時間戳
    //順計時  開始時間跑到結束時間遞增  10位
    [self.aloneCountDown countDownHasPasstimeWithStratTimeTemStamp:1560852960 finishTimeStamp:1560952960 adjust:1.0 completeBlock:^(NSString *dateStr, BOOL isFinish) {
      NSLog(@"timeStr - %@",dateStr);
    }];
/**
 順計時  開始時間跑到結束時間遞增  13位
 
 @param starTimeStamp 開始的時間戳 是毫秒
 @param finishTimeStamp 結束的時間戳,是毫秒
 @param completeBlock 已經過了多長時間的字串,是否已經到時間了
 */

-(void)countDownHasPasstimeWithStratTimeTemThreeStamp:(long long)starTimeStamp finishTimeStamp:(long long)finishTimeStamp adjust:(double)adjust  completeBlock:(void (^)(NSString * dateStr,BOOL isFinish))completeBlock;

使用

    //1560852960   [[NSDate date] timeIntervalSince1970];  當前13位時間戳
    //順計時  開始時間跑到結束時間遞增  13位
    [self.aloneCountDown countDownHasPasstimeWithStratTimeTemThreeStamp:1560852960000 finishTimeStamp:1560952960000 adjust:1.0 completeBlock:^(NSString *dateStr, BOOL isFinish) {
      NSLog(@"timeStr - %@",dateStr);
    }];
/**
 *  直接傳入秒數   10秒倒計時
 *  根據時間間隔進行倒計時,timeout必須是整數,值是秒數
 *
 *  @param timeOut       倒計時時間 秒
 *  @param completeBlock 倒計時回撥
 */
-(void)countDownWithTimeout:(NSTimeInterval)timeOut completeBlock:(void (^)(NSString *,BOOL isFinish))completeBlock;

使用

    //傳入秒數倒計時
    [self.aloneCountDown countDownWithTimeout:100 completeBlock:^(NSString *dateStr, BOOL isFinish) {
       NSLog(@"timeStr - %@",dateStr);
    }];

在這裡插入圖片描述

/**
 *  獲取當前時間戳有兩種方法(以秒為單位)
 *  根據時間間隔進行倒計時
 *
 *
 */
+(NSString *)getNowTimeTimestampReturnSecond;

使用

[CountDownManager getNowTimeTimestampReturnSecond];

列印結果 秒數: 1612777514

/**
 *  獲取當前時間戳有兩種方法(以毫秒為單位)
 *  根據時間間隔進行倒計時
 *
 *
 */
+(NSString *)getNowTimeTimestampMillisecond;

使用

[CountDownManager getNowTimeTimestampMillisecond];

列印結果:秒數: 1612777514000