博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于NSTimer的倒计时
阅读量:6457 次
发布时间:2019-06-23

本文共 1469 字,大约阅读时间需要 4 分钟。

今天做手机短信验证码的功能,不用GCD,简单的NSTimer就可以完成,不知道有没有bug,测试中。。。

#pragma mark - 倒计时- (void)startCount{    /**     *  添加定时器     */    self.currentCountDown = 120;    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDown) userInfo:nil repeats:YES];    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];    [self.timer fire];}- (void)countDown{        if (self.currentCountDown >0) {        //设置界面的按钮显示 根据自己需求设置        [self.captchaBtn setTitle:[NSString stringWithFormat:@"(%ld)重新获取",(long)self.currentCountDown] forState:UIControlStateNormal];        //self.captchaBtn.enabled = NO;        self.currentCountDown -= 1;    }else{        [self removeTimer];    }    }/** *  移除定时器 */- (void)removeTimer{    self.currentCountDown = 0;    [self setCaptchaEnable:YES];    [self.timer invalidate];    self.timer = nil;}//因为iOS 7下 按钮 enabled= NO, 不能设置文字#pragma mark - 设置按钮状态- (void)setCaptchaEnable:(BOOL)enabled{    //可以按    if (enabled) {        self.captchaBtn.userInteractionEnabled = YES;        [self.captchaBtn setBackgroundImage:[UIImage imageNamed:@"back_red"] forState:UIControlStateNormal];        [self.captchaBtn setTitle:@"获取验证码" forState:UIControlStateNormal];            }else{        self.captchaBtn.userInteractionEnabled = NO;        [self.captchaBtn setBackgroundImage:[UIImage imageNamed:@"back_gray"] forState:UIControlStateNormal];    }}
  • 如果有什么疑问,可以在评论区一起讨论;
  • 如果有什么不正确的地方,欢迎指导!

注:本文首发于 ,如若转载,请注明来源。

你可能感兴趣的文章
Aqua Data Studio 数据库开发工具
查看>>
puppet来管理文件和软件包
查看>>
【转载】基于lucene的搜索方案
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>
阻塞非阻塞异步同步 io的关系
查看>>
ClickStat业务
查看>>
DMA32映射问题
查看>>
Android内存泄露之开篇
查看>>
leetcode-38 Count And Say
查看>>
提高效率—编程中的技巧
查看>>
导出excel——弹出框
查看>>
高并发程序设计
查看>>
ExtJs之组件(window)
查看>>
SoapUI中如何传递cookie
查看>>
shell中的一些技巧和知识
查看>>
eclipse 导出Runnable JAR file ,双击无法执行原因与解决 双击后闪退的原因 批处理java打包文件 @echo off start javaw -jar *.jar...
查看>>
静态成员变量的初始化
查看>>
POJ 1269 Intersecting Lines(判断两直线位置关系)
查看>>
MSSQL数据库跨表和跨数据库查询方法简(转)
查看>>
spring3.0.7中各个jar包的作用总结
查看>>