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.
97 lines
2.4 KiB
97 lines
2.4 KiB
4 years ago
|
//
|
||
|
// 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
|