使用GCD实现发送短信验证码效果
来源:互联网 发布:java怎么显示行 编辑:程序博客网 时间:2024/05/17 10:29
- (IBAction)buttonActon:(UIButton *)sender{ sender.userInteractionEnabled = NO; // 等待的秒数 __block int count = 5; // 获取全局队列 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); // 实例化计时器 _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); // 设置计时器 dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1 * NSEC_PER_SEC, 0 * NSEC_PER_SEC); // 设置计时器事件处理 dispatch_source_set_event_handler(_timer, ^{ if (count == 0) { // 取消计时器 dispatch_source_cancel(_timer); // 在主队列里处理 dispatch_async(dispatch_get_main_queue(), ^{ // 将按钮置为正常状态 sender.userInteractionEnabled = YES; sender.titleLabel.font = [UIFont systemFontOfSize:15]; sender.backgroundColor = [UIColor orangeColor]; [sender setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [sender setTitle:@"发送验证码" forState:UIControlStateNormal]; }); } else { NSString *str = [NSString stringWithFormat:@"剩余(%d)s",count]; // 在主队列里处理 dispatch_async(dispatch_get_main_queue(), ^{ // 按钮显示剩余等待时间 sender.backgroundColor = [UIColor grayColor]; [sender setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal]; [sender setTitle:str forState:UIControlStateNormal]; }); count--; } }); // 开启timer dispatch_resume(_timer);}- (void)dealloc{ // 取消计时器 if (_timer) dispatch_source_cancel(_timer);}
0 0
- 使用GCD实现发送短信验证码效果
- 使用56短信网接口实现发送短信验证码
- jquery 倒计时发送短信验证码效果
- 短信验证码倒计时+GCD实现
- XZ_iOS之使用GCD实现发送验证码
- 使用第三方平台短信接口实现发送验证码
- iOS GCD实现发送验证码倒计时
- 发送短信验证码按钮的实现
- http接口实现短信发送验证码
- laravel中实现短信发送验证码
- 用GCD实现获取验证码效果
- 使用阿里大于发送短信验证码
- 使用activeMQ发送短信验证码
- PHP实现短信宝发送短信验证码功能
- PHP实现短信宝发送短信验证码功能
- 发送短信验证码
- 发送短信验证码
- 发送短信验证码
- DNS信息收集-DIG
- POJ 1743 后缀数组
- C++第10/11周项目 继承与派生 【项目3 - 警察和厨师】(复习新版)
- C语言ODBC操作MySQL数据库
- idf实验室
- 使用GCD实现发送短信验证码效果
- jquery子元素过滤选择器
- python3下载百度图片
- jQuery 获取多选框值,以及多选框中文的函数实践 by FungLeo
- PHP取整,四舍五入取整、向上取整、向下取整、小数截取
- ios 开发学习日志 自定义alertView 4
- jquery的 live()方法, 为什么总是提示不是一个function 错误信息
- Python笔记
- 几道面试小题