【IOS】倒计时实现的两种方法

方法1:使用NSTimer来实现

主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把timer给invalidate掉就ok了,代码如下:

1 secondsCountDown = 60;//60秒倒计时
2 countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES];
3 -(void)timeFireMethod{
4     secondsCountDown--;
5     if(secondsCountDown==0){
6       [countDownTimer invalidate];
7     }
8 }

方法2:使用GCD来实现

代码如下:

 1     __block int timeout=300; //倒计时时间
 2     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
 3     dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
 4     dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
 5     dispatch_source_set_event_handler(_timer, ^{
 6         if(timeout<=0){ //倒计时结束,关闭
 7             dispatch_source_cancel(_timer);
 8             dispatch_release(_timer);
 9             dispatch_async(dispatch_get_main_queue(), ^{
10         //设置界面的按钮显示 根据自己需求设置
11                 。。。。。。。。
12             });
13         }else{
14             int minutes = timeout / 60;
15             int seconds = timeout % 60;
16             NSString *strTime = [NSString stringWithFormat:@"%d分%.2d秒后重新获取验证码",minutes, seconds];
17             dispatch_async(dispatch_get_main_queue(), ^{
18                 //设置界面的按钮显示 根据自己需求设置
19         。。。。。。。。
20             });
21             timeout--;
22
23         }
24     });
25     dispatch_resume(_timer); 
时间: 2024-08-09 19:52:33

【IOS】倒计时实现的两种方法的相关文章

IOS发送Email的两种方法

IOS系统框架提供的两种发送Email的方法:openURL 和 MFMailComposeViewController.借助这两个方法,我们可以轻松的在应用里加入如用户反馈这类需要发送邮件的功能. 1.openURL 使用openURL调用系统邮箱客户端是我们在IOS3.0以下实现发邮件功能的主要手段.我们可以通过设置url里的相关参数来指定邮件的内容,不过其缺点很明显,这样的过程会导致程序暂时退出.下面是使用openURL来发邮件的一个小例子: #pragma mark - 使用系统邮件客户

ios开发之倒计时实现的两种方法

方法1:使用NSTimer来实现 主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把timer给invalidate掉就ok了,代码如下: secondsCountDown = 60;//60秒倒计时 countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self sel

【转】 ios开发之倒计时实现的两种方法

原文:http://blog.csdn.net/kylinbl/article/details/8972261 方法1:使用NSTimer来实现 主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把timer给invalidate掉就ok了,代码如下: [cpp] view plaincopyprint? secondsCountDown = 60;

IOS发送Email的两种方法-备

1.openURL 使用openURL调用系统邮箱客户端是我们在IOS3.0以下实现发邮件功能的主要手段.我们可以通过设置url里的相关参数来指定邮件的内容,不过其缺点很明显,这样的过程会导致程序暂时退出.下面是使用openURL来发邮件的一个小例子: #pragma mark - 使用系统邮件客户端发送邮件 -(void)launchMailApp { NSMutableString *mailUrl = [[[NSMutableString alloc]init]autorelease];

ios图片拉伸两种方法

ios图片拉伸两种方法 UIImage *image = [UIImage imageNamed:@"qq"]; 第一种: // 左端盖宽度 NSInteger leftCapWidth = image.size.width * 0.5f; // 顶端盖高度 NSInteger topCapHeight = image.size.height * 0.5f; // 重新赋值 image = [image stretchableImageWithLeftCapWidth:leftCapW

【原】ios打包ipa的两种实用方法(.app转.ipa)

总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选一,一般选后两个. 局限性:个人开发一般采用这种方法,但是当一个证书多人使用时就稍显麻烦.一般多人开发时都是采用provisioning profile+P12文件来进行真机调试.上述方法在最后导出ipa包时需要输入appleID,这时还要向团队的其他人要.采用provisioning profile+P12

Cisco设备IOS的恢复方法 两种方法

如果不小心把Router或者Switch的IOS删除了,特别是Flash中的IOS和ROM中的Mini IOS都没有了的话,连启动都不行的话,有什么方法恢复它呢?答案是方法不只一种,而是两种.其实是我只知道两种:) 第一种方法:X-Modem 以前我曾经尝试过一种方法,就是当Flash被删除后,启动无法进入系统,可以用X-Modem来恢复它.当时我不小心删除了一台Cisco2950交换机的Flash IOS,导致系统无法启动,在查过不少资料后得到一个结论:唯一的方法通过X-Modem来恢复.我的

iOS 两种方法实现左右滑动出现侧边菜单栏 slide view

现在很多的APP中都有slide view,左右滑动出现侧边菜单栏的功能,Weico这个应用就有. 网上有很多第三方的类库实现了这种效果,其实自己代码写的话也是很简单的,下面我将介绍两种方法实现slide view.---- 一种是用第三方类库IIViewDeckController这个类库实现的效果比起其他的都好,另一种是自己代码实现这种效果,效果还ok. 实现方法一(使用第三方库IIViewDeckController): https://github.com/Inferis/ViewDec

【iOS开发-网络】两种常用的方法解析XML数据

解析XML数据常用的有两种方法 第一种 使用Google的GDataXMLNode解析XML数据 使用的是DOM方式解析 先把xml一口吞掉 然后一点一点的解析 第二种 使用苹果自带的NSXMLParser解析XML数据 使用的是SAX方式解析 一个标记一个标记的解析 第一种使用步骤 第一步 首先把GDataXML文件夹放入项目中 第二步 更改Bulid Setting里面的东西 更改头文件搜索路径 在Header Search Paths里面添加路径/usr/include/libxml2 在