ios开发之倒计时实现的两种方法
来源:互联网 发布:淘宝新手适合卖什么 编辑:程序博客网 时间:2024/05/17 03:39
<span style="font-family: 'Microsoft YaHei', Tahoma, Arial; text-indent: 2em; background-color: rgb(255, 255, 255);">方法1:使用NSTimer来实现</span>
主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把timer给invalidate掉就ok了,代码如下:
timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(checkTheLimit) userInfo:nil repeats:YES]; [timer fire]; -(void)checkTheLimit{ UILabel *btn = (UILabel *)[self.view viewWithTag:100]; timeCount--; if (timeCount==0) { [timer invalidate]; timer=nil; btn.text = @"获取验证码"; [btn addGestureRecognizer:codeTap]; //[btn addTarget:self action:@selector(getCode) forControlEvents:UIControlEventTouchUpInside]; }else{ //[btn removeTarget:self action:@selector(getCode) forControlEvents:UIControlEventTouchUpInside]; btn.text = [NSString stringWithFormat:@"(%ld)秒",(long)timeCount]; [btn removeGestureRecognizer:codeTap]; } }
方法2:使用GCD来实现
代码如下:
__block int timeout=300; //倒计时时间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_release(_timer); dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置 。。。。。。。。 }); }else{ int minutes = timeout / 60; int seconds = timeout % 60; NSString *strTime = [NSString stringWithFormat:@"%d分%.2d秒后重新获取验证码",minutes, seconds]; dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置 。。。。。。。。 }); timeout--; }});dispatch_resume(_timer);
原文: http://blog.csdn.net/kylinbl/article/details/8972261
0 0
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- ios开发之倒计时实现的两种方法
- iOS倒计时实现之两种方法
- ios开发之倒计时实现的方法
- ios 倒计时的两种实现方式
- iOS开发 简单实现倒计时的方法
- 倒计时实现的两种方法
- ios开发之倒计时实现
- ios倒计时的实现方法
- iOS活动倒计时的两种实现方式
- iOS开发之跑马灯滚动条的两种方法与实现
- C#格式化小数位的方法
- [Django模板系统]Non-ASCII character 'xe5' in file报错问题
- iOS app 打包发布
- CSDN的第一天
- 多义符号
- ios开发之倒计时实现的两种方法
- 一个Android Activity管理器,用于管理活动的Activity
- (androidStudio)AsyncTask+进度条实现网络下载图片
- windows 7 搭建openfire 服务器 图解
- 腾讯发布80页重磅报告:哪些行业将被颠覆
- Android对象与Base64为字符串
- leetcode系列(38)3Sum,3SumClosest,4Sum
- 日常总结一 eclipse或myeclipse模板设置
- Android自带控件ExpandableListView的使用