倒计时

Posted makingitbest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了倒计时相关的知识,希望对你有一定的参考价值。

效果

 

用法

1.导入Timer.h/.m文件

2.所需界面导入头文件 #import “Timer.h”,其他设置参考源码

 

源码

 github:https://github.com/makingitbest/CountDownTimer

 

细节

 

#import "ViewController.h"
#import "Timer.h"

@interface ViewController ()<TimerDelegate>

@property (nonatomic, strong) UIButton *button;
@property (nonatomic, strong) Timer *timer;

@end

@implementation ViewController

- (void)viewDidLoad {
    
    [super viewDidLoad];
   
    // 倒计时界面
    self.timer          = [[Timer alloc] initWithFrame:CGRectMake(10, 100, 200, 30)];
    self.timer.delegate = self; // 记得遵守代理
    self.timer.sceonds  = 5;
    self.timer.layer.borderWidth  = 1;
    self.timer.layer.cornerRadius = 5;
    self.timer.layer.borderColor  = [UIColor orangeColor].CGColor;
    self.timer.label.font         = [UIFont systemFontOfSize:14];
    self.timer.label.textColor    = [UIColor orangeColor];
    [self.view addSubview:self.timer];
    
    self.button                   = [[UIButton alloc] initWithFrame:CGRectMake(10, 150, 100, 40)];
    self.button.layer.borderWidth = 1.0f;
    self.button.layer.borderColor = [UIColor blackColor].CGColor;
    [self.button setTitle:@"点击" forState:UIControlStateNormal];
    [self.button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [self.button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
    [self.button setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];
    [self.view addSubview:self.button];
    [self.button addTarget:self action:@selector(buttonEvent) forControlEvents:UIControlEventTouchUpInside];
}

- (void)buttonEvent {
 
    // 启动倒计时的方法,启动之后设置button点击失效
    [self.timer timerStart];
    self.button.enabled = NO;
    self.button.layer.borderColor = [UIColor grayColor].CGColor;
}

- (void)timerFinished:(Timer *)timer {

    // 计时完成之后,button恢复点击
    self.button.enabled = YES;
    self.button.layer.borderColor = [UIColor blackColor].CGColor;
}

@end

 

以上是关于倒计时的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用片段和计时器的选项卡式活动上更新 UI

如何实现React原生倒计时圈

自动刷新android片段,直到满足条件

如果用户没有使用浏览器,则jQuery计时器停止

颤振计时器仅更新秒小部件

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-程序运行计时的总结