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

//
// 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