第一步,拖两个空间textfiled和button到storyboard上的viewcontroller上。

第二步,拖线,链接到.h文件中代码如下:

1
@property (weak, nonatomic) IBOutlet UIButton *l_timeButton;

第三步,在,m文件中为l_timeButton设置监听器,监听点击事件。

1
2
3
4
- (void)viewDidLoad {
    [super viewDidLoad];
    [_l_timeButton addTarget:self action:@selector(startTime) forControlEvents:UIControlEventTouchUpInside];
}

第四步,在方法“startTime”中实现倒计时功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-(void)startTime{
    __block int timeout=30; //倒计时时间
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
    dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
    dispatch_source_set_event_handler(_timer, ^{
        if(timeout<=0){ //倒计时结束,关闭
            dispatch_source_cancel(_timer);
            dispatch_async(dispatch_get_main_queue(), ^{
                //设置界面的按钮显示 根据自己需求设置
                [_l_timeButton setTitle:@"发送验证码" forState:UIControlStateNormal];
                _l_timeButton.userInteractionEnabled = YES;
            });
        }else{
            int seconds = timeout % 60;
            NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];
            dispatch_async(dispatch_get_main_queue(), ^{
                //设置界面的按钮显示 根据自己需求设置
                //NSLog(@"____%@",strTime);
                [UIView beginAnimations:nil context:nil];
                [UIView setAnimationDuration:1];
                [_l_timeButton setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:UIControlStateNormal];
                [UIView commitAnimations];
                _l_timeButton.userInteractionEnabled = NO;
            });
            timeout--;
        }
    });
    dispatch_resume(_timer);
}

一个验证码倒计时的功能就写好了

iOS开发--验证码相关推荐

  1. T语言与快速开发平台之天宇联iOS开发手册

    天宇联IOS开发手册 控制包ttyu.controller 1.    通用类Command 方法 说明 - (voidGetFunctionValue (NSString *dataMember) ...

  2. iOS开发的经典博客和文章汇总

    官方文档 马上着手开发 iOS 应用程序(官方) https://developer.apple.com/library/ios/referencelibrary/GettingStarted/Roa ...

  3. 校园招聘iOS开发岗位面试题集锦(2017)

    转发自:  http://blog.csdn.net/chenyufeng1991/article/details/53472284#comments 一.搜狐快站 1.谈谈你做过的项目: 2.项目中 ...

  4. 2017秋季校园招聘iOS开发岗位面试题集锦

    笔者参加了2017秋季不少的校招iOS岗位面试,下面我把这些面试题都贴出来和大家共勉: 一.搜狐快站 1.谈谈你做过的项目: 2.项目中最有成就感的部分: 3.倒计时如何实现?(NSTimer,还有其 ...

  5. iOS开发的经典博客和文章汇总【原创】

    官方文档 苹果官方demo https://developer.apple.com/library/ios/recipes/xcode_help-IB_auto_layout/chapters/Und ...

  6. iOS开发证书、bundle ID、App ID、描述文件、p12文件,企业证书打包发布,及过期处理

    文章目录 1 .iOS开发证书,描述文件,bundle ID的关系 2. Apple开发账号添加团队成员 3 .开发证书,生产证书,描述文件,AppID关系及生成. 4.证书导出p12文件 5.描述文 ...

  7. 2022 ios APP最新iOS开发上架测试教程

    2022 ios APP最新开发测试教程 本文详细介绍最新的在windows上进行ios app开发编译打包安装到手机测试的完整流程.介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios ...

  8. IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题

    在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:    这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需 ...

  9. iOS开发UI篇—transframe属性(形变)

    iOS开发UI篇-transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ...

最新文章

  1. 万亿新基建,AI“芯”机遇在哪?| CCF-GAIR 2020
  2. 华为在线题--计算字符个数
  3. C# 3.0实现类本身的方法扩展
  4. mysql事务吞吐量_MySQL 5.5和MySQL 5.6的吞吐量测试
  5. 什么是Google Play保护以及如何确保Android安全?
  6. 文末有彩蛋 | 第四周课程回顾与总结
  7. Oracle发布更新使数据库性能优化达到75%
  8. Software Version
  9. 深度学习笔记(26) 卷积神经网络
  10. matlab 曲线拟合--视频编码中PSNR计算及码率计算
  11. 程序出错后 程序员给测试人员的20条高频回复
  12. 3Dshader之球形环境映射(sphere environment mapping)
  13. Perl 读取特定格式的文件名
  14. 一篇文章教你用matlab求定积分广义/变限积分
  15. 新版PHP小说漫画听书视频四合一网站源码+带采集
  16. 通达信、东方财富神奇九转指标计算公式,代码实现
  17. 一种多源信息融合方法及其应用(Matlab代码实现)
  18. (转贴)联想员工亲历联想大裁员:公司不是家
  19. ubuntu下bitcoin core的安装和编译
  20. 大学生vb计算机基础,大学计算机基础课程上机考试登录程序的VB实现

热门文章

  1. 为什么叫日上_古雷150万吨乙烯,为啥叫芒果项目?
  2. leetcode71. 简化路径 Unix 风格
  3. leetcode252. 会议室
  4. leetcode 152 乘积最大子序列
  5. servlet中的数据存储
  6. 男人最佳的生育年限,程序员们,看看吧!!!
  7. 10岁起编程,并不认为自己是“黑客”
  8. TS流头部的调整字段
  9. store_coding_state (cs_cm)的作用
  10. node、npm、vue安装 -- VUE 项目 demo 实例