iOS 短信验证码倒计时按钮的实现
2016-05-30 16:45
344 查看
转载于ios原作者
验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下:
实现思路:
马上
在按钮的点击事件里调用该方法
注意:
我们在创建Button时,要设置Button的样式,
当type为:UIButtonTypeCustom时,是读秒的效果。
当type为:其他时,是一闪一闪的效果。
文/Li_Cheng(简书作者)
原文链接:http://www.jianshu.com/p/2104865e7dba
验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下:
实现思路:
>创建按钮,添加点击方法; >用NSTimer定时器,每秒执行一次,定时改变Button的title,改变Button的样式,设置Button不可点击; >若倒计时结束,定时器关闭,并改变Button的样式,可以点击;
马上
在按钮的点击事件里调用该方法
-(void)openCountdown{ __block NSInteger time = 59; 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(time <= 0){ dispatch_source_cancel(_timer); dispatch_async(dispatch_get_main_queue(), ^{ [self.authCodeBtn setTitle:@"重新发送" forState:UIControlStateNormal]; [self.authCodeBtn setTitleColor:[UIColor colorFromHexCode:@"FB8557"] forState:UIControlStateNormal]; self.authCodeBtn.userInteractionEnabled = YES; }); }else{ int seconds = time % 60; dispatch_async(dispatch_get_main_queue(), ^{ [self.authCodeBtn setTitle:[NSString stringWithFormat:@"重新发送(%.2d)", seconds] forState:UIControlStateNormal]; [self.authCodeBtn setTitleColor:[UIColor colorFromHexCode:@"979797"] forState:UIControlStateNormal]; self.authCodeBtn.userInteractionEnabled = NO; }); time--; } }); dispatch_resume(_timer); }
注意:
我们在创建Button时,要设置Button的样式,
当type为:UIButtonTypeCustom时,是读秒的效果。
当type为:其他时,是一闪一闪的效果。
文/Li_Cheng(简书作者)
原文链接:http://www.jianshu.com/p/2104865e7dba
相关文章推荐
- 正则表达式
- iOS9创建PCH文件
- iOS 开发疑难杂症
- CIFilter应用:多图叠加合成
- iOS 宏(define)与常量(const)的正确使用
- iOS 浅拷贝(Shallow Copy)与深拷贝(Deep Copy)
- 【iOS开发】获取当前view(视图)所在的Controller(控制器)
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- iOS 两日期之间相差几天
- 苹果开发(二) 申请应用
- IOS开发 强制横屏
- ios 中生成随机数
- IOS原生代码实现推送
- iOS版本比较方法
- iOS中如何导入PCH文件
- 苹果开发(一) 申请开发者
- iOS开发小技巧--自定义带有占位文字的TextView(两种方式)
- Mac + xcode 如何reset iOS模拟器
- ios中的成员变量定义在@interface 和@implementation 中的区别是什么?
- 蓝牙,WiFi(三)