博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发--验证码
阅读量:6718 次
发布时间:2019-06-25

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

第一步,拖两个空间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);
}

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

转载地址:http://muumo.baihongyu.com/

你可能感兴趣的文章
优朋普乐:OTT正重构电视版图
查看>>
Ubuntu 14.04 LTC 有线网络——网线不识别,灯不亮问题
查看>>
21_css布局2_浮动布局.html
查看>>
DateUtils 单元下的公用函数目录
查看>>
jQuery 练习[二]: 获取对象(1) - 基本选择与层级
查看>>
Sublime Text 2 快捷键用法大全
查看>>
用U盘安装debian系统
查看>>
SequoiaDB 笔记
查看>>
lduan HyPer-V 网络存储(三)
查看>>
SSH 命令行参数详解【英】
查看>>
前端技术学习之选择器(四)
查看>>
2016年4月4日中项作业
查看>>
条件+努力=?
查看>>
hadoop常用服务管理命令
查看>>
洛谷P4169 天使玩偶 (算竞进阶习题)
查看>>
Order By操作
查看>>
(三)mybatis之对Hibernate初了解
查看>>
nginx安装与配置
查看>>
Android 命令设置获取、IP地址、网关、dns
查看>>
查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by...
查看>>