iOS开发--验证码
第一步,拖两个空间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开发--验证码相关推荐
- T语言与快速开发平台之天宇联iOS开发手册
天宇联IOS开发手册 控制包ttyu.controller 1. 通用类Command 方法 说明 - (voidGetFunctionValue (NSString *dataMember) ...
- iOS开发的经典博客和文章汇总
官方文档 马上着手开发 iOS 应用程序(官方) https://developer.apple.com/library/ios/referencelibrary/GettingStarted/Roa ...
- 校园招聘iOS开发岗位面试题集锦(2017)
转发自: http://blog.csdn.net/chenyufeng1991/article/details/53472284#comments 一.搜狐快站 1.谈谈你做过的项目: 2.项目中 ...
- 2017秋季校园招聘iOS开发岗位面试题集锦
笔者参加了2017秋季不少的校招iOS岗位面试,下面我把这些面试题都贴出来和大家共勉: 一.搜狐快站 1.谈谈你做过的项目: 2.项目中最有成就感的部分: 3.倒计时如何实现?(NSTimer,还有其 ...
- iOS开发的经典博客和文章汇总【原创】
官方文档 苹果官方demo https://developer.apple.com/library/ios/recipes/xcode_help-IB_auto_layout/chapters/Und ...
- iOS开发证书、bundle ID、App ID、描述文件、p12文件,企业证书打包发布,及过期处理
文章目录 1 .iOS开发证书,描述文件,bundle ID的关系 2. Apple开发账号添加团队成员 3 .开发证书,生产证书,描述文件,AppID关系及生成. 4.证书导出p12文件 5.描述文 ...
- 2022 ios APP最新iOS开发上架测试教程
2022 ios APP最新开发测试教程 本文详细介绍最新的在windows上进行ios app开发编译打包安装到手机测试的完整流程.介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios ...
- IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题
在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的: 这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需 ...
- iOS开发UI篇—transframe属性(形变)
iOS开发UI篇-transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ...
最新文章
- 万亿新基建,AI“芯”机遇在哪?| CCF-GAIR 2020
- 华为在线题--计算字符个数
- C# 3.0实现类本身的方法扩展
- mysql事务吞吐量_MySQL 5.5和MySQL 5.6的吞吐量测试
- 什么是Google Play保护以及如何确保Android安全?
- 文末有彩蛋 | 第四周课程回顾与总结
- Oracle发布更新使数据库性能优化达到75%
- Software Version
- 深度学习笔记(26) 卷积神经网络
- matlab 曲线拟合--视频编码中PSNR计算及码率计算
- 程序出错后 程序员给测试人员的20条高频回复
- 3Dshader之球形环境映射(sphere environment mapping)
- Perl 读取特定格式的文件名
- 一篇文章教你用matlab求定积分广义/变限积分
- 新版PHP小说漫画听书视频四合一网站源码+带采集
- 通达信、东方财富神奇九转指标计算公式,代码实现
- 一种多源信息融合方法及其应用(Matlab代码实现)
- (转贴)联想员工亲历联想大裁员:公司不是家
- ubuntu下bitcoin core的安装和编译
- 大学生vb计算机基础,大学计算机基础课程上机考试登录程序的VB实现