You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.4 KiB
96 lines
2.4 KiB
// |
|
// WXYZ_GCDTimer.h |
|
// WXReader |
|
// |
|
// Created by Andrew on 2020/6/18. |
|
// Copyright © 2020 Andrew. All rights reserved. |
|
// |
|
|
|
#import <Foundation/Foundation.h> |
|
|
|
NS_ASSUME_NONNULL_BEGIN |
|
|
|
typedef NS_ENUM(NSUInteger, WXYZ_GCDTimerState) { |
|
WXYZ_GCDTimerStateStoped, |
|
WXYZ_GCDTimerStateRunning, |
|
WXYZ_GCDTimerStatePausing |
|
}; |
|
|
|
@interface WXYZ_GCDTimer : NSObject |
|
|
|
@property (nonatomic, copy) void (^timerStartBlock)(void); // 定时器开始回调 |
|
|
|
@property (nonatomic, copy) void (^timerSuspendBlock)(void); // 定时器暂停回调 |
|
|
|
@property (nonatomic, copy) void (^timerResumeBlock)(void); // 定时器恢复回调 |
|
|
|
@property (nonatomic, copy) void (^timerTerminateBlock)(void); // 定时器终止回调 |
|
|
|
@property (nonatomic, copy) void (^timerFinishedBlock)(void); // 定时器完成回调 |
|
|
|
@property (nonatomic, copy) void (^timerRunningBlock)(NSUInteger runTimes, CGFloat currentTime); // 定时器运行回调 |
|
|
|
@property (nonatomic, assign, readonly) WXYZ_GCDTimerState timerState; // 定时器状态 |
|
|
|
/** |
|
循环定时器(每秒循环一次) |
|
|
|
@param immediatelyCallBack 开启定时器时是否立即进行运行回调 |
|
*/ |
|
- (instancetype)initCycleTimerWithImmediatelyCallBack:(BOOL)immediatelyCallBack; |
|
|
|
/** |
|
循环计时器 |
|
|
|
@param interval 计时间隔 |
|
@param immediatelyCallBack 开启定时器时是否立即进行运行回调 |
|
*/ |
|
- (instancetype)initCycleTimerWithInterval:(double)interval immediatelyCallBack:(BOOL)immediatelyCallBack; |
|
|
|
/** |
|
倒计时计时器(每秒循环一次) |
|
|
|
@param timeDuration 倒计时时长 |
|
@param immediatelyCallBack 开启定时器时是否立即进行运行回调 |
|
*/ |
|
- (instancetype)initCountdownTimerWithTimeDuration:(double)timeDuration immediatelyCallBack:(BOOL)immediatelyCallBack; |
|
|
|
/** |
|
倒计时计时器 |
|
|
|
@param timeDuration 倒计时时长 |
|
@param interval 计时间隔 |
|
@param immediatelyCallBack 开启定时器时是否立即进行运行回调 |
|
*/ |
|
- (instancetype)initCountdownTimerWithTimeDuration:(double)timeDuration interval:(double)interval immediatelyCallBack:(BOOL)immediatelyCallBack; |
|
|
|
- (instancetype)init NS_UNAVAILABLE; |
|
|
|
/** |
|
* 定时器开启 |
|
*/ |
|
- (void)startTimer; |
|
|
|
/** |
|
* 定时器开启 |
|
*/ |
|
- (void)startTimerWithTimeDuration:(double)timeDuration; |
|
|
|
/** |
|
* 定时器停止 |
|
*/ |
|
- (void)stopTimer; |
|
|
|
/** |
|
* 定时器恢复 |
|
*/ |
|
- (void)resumeTimer; |
|
|
|
/** |
|
* 定时器暂停 |
|
*/ |
|
- (void)suspendTimer; |
|
|
|
@end |
|
|
|
NS_ASSUME_NONNULL_END
|
|
|