1. 今天在Code4App上看了一个GCD倒计时的Demo,觉得不错代码贴出来备用
  2.  
  3. -(void)startTime{
  4. __block int timeout = ; //倒计时时间
  5. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, );
  6. dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, , ,queue);
  7. dispatch_source_set_timer(_timer,dispatch_walltime(NULL, ),1.0*NSEC_PER_SEC, ); //每秒执行
  8. dispatch_source_set_event_handler(_timer, ^{
  9. if(timeout<=){ //倒计时结束,关闭
  10. dispatch_source_cancel(_timer);
  11. dispatch_async(dispatch_get_main_queue(), ^{
  12. //设置界面的按钮显示 根据自己需求设置
  13. [_timeoutButton setTitle:@"发送验证码" forState:UIControlStateNormal];
  14. _timeoutButton.userInteractionEnabled = YES;
  15. });
  16. }else{
  17. int seconds = timeout % (timeout * );
  18. NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];
  19. dispatch_async(dispatch_get_main_queue(), ^{
  20. //设置界面的按钮显示 根据自己需求设置
  21. NSLog(@"____%@",strTime);
  22. [_timeoutButton setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:UIControlStateNormal];
  23. _timeoutButton.userInteractionEnabled = NO;
  24.  
  25. });
  26. timeout--;
  27.  
  28. }
  29. });
  30. dispatch_resume(_timer);
  31.  
  32. }

GCD 倒计时的更多相关文章

  1. iOS GCD倒计时

    GCD倒计时的好处在于不用考虑是否定时器无法释放的问题,runloop的问题,还有精度更加高 使用GCD创建定时器方法 -(void)startCountDown:(NSInteger)maxTime ...

  2. ios. GCD 倒计时时间

    //倒计时时间 __block int timeout = 60; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_ ...

  3. gcd倒计时

    @interface ViewController () { dispatch_source_t _timer; } @property (weak, nonatomic) IBOutlet UILa ...

  4. iOS活动倒计时的两种实现方式

    代码地址如下:http://www.demodashi.com/demo/11076.html 在做些活动界面或者限时验证码时, 经常会使用一些倒计时突出展现. 现提供两种方案: 一.使用NSTime ...

  5. iOS GCD 拾遗

    GCD里就有三种queue(分派队列)来处理. 1. Main queue:(主队列) 顾名思义,运行在主线程,由dispatch_get_main_queue获得.和ui相关的就要使用Main Qu ...

  6. iOS技术博客(文摘)链接地址

      objc系列译文(5.1):认识 TextKit 手把手教你配置苹果APNS推送服务 如何使用iOS Addressbook UIApplication深入研究 GCD倒计时 那些不能错过的Xco ...

  7. App启动加载广告页面思路

    需求 很多app(如淘宝.美团等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的app在点击广告页之后还会进入一个广告页面,点击返回进入首页.今天我们就来开发一个广告 ...

  8. App 启动加载广告页面思路

    需求 很多app(如淘宝.美团等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的app在点击广告页之后还会进入一个广告页面,点击返回进入首页.今天我们就来开发一个广告 ...

  9. 关于App启动加载广告页面思路

    需求 很多app(如淘宝.美团等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的app在点击广告页之后还会进入一个广告页面,点击返回进入首页.虽然说这个广告页面对用户 ...

随机推荐

  1. 【ArcGIS 10.2新特性】ArcGIS Online新特性(上)

    概述 7月,ArcGIS Online发布了很多更新.主要内容有:新的网站设计,增强了Web制图,数据分析,应用程序创建,以及机构管理等功能. 更新的大致内容总结如下: 地图查看器:新的分析工具.获取 ...

  2. .net的WebForm模拟MVC进行模型绑定,让自己少操劳

    一.前言 用过MVC的兄弟们都知道,MVC有模型绑定表单提交的数据功能,那么我也想偷个懒也写个WebForm版的模型绑定.这里主要定义一个泛型方法,然后通过反射把表单上对应属性名字的值赋值到反射创建类 ...

  3. ArcEngine - 地图和布局同步

    1,定义同步的类: using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...

  4. Oracle存储过程procedure

    --给plsql块设置一个名称保存下来便于调用 /* Create or replace procedure 名称 As 声明变量 Begin //代码块 End; --plsql块 Declare ...

  5. Objective-C 字典、可变字典

    字典相当于c++ stl中的map 字典NSDictionary #import <UIKit/UIKit.h> #import "AppDelegate.h" int ...

  6. C#重写Equals方法步骤

    检查传入的参数是否为null, 如果为null,那么返回false, 否则执行步骤2 调用ReferenceEquals查看是否为统一个对象,如果是,那么返回true, 否则执行步骤3 判断两者是否为 ...

  7. C# 程序打包

    1:新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装项目,然后点击确定.(详细见下图) 此主题相关图片如下: 2:开始打包2.1 确定即可进入项目文件夹:双 ...

  8. HDU 5195 - DZY Loves Topological Sorting

    题意: 删去K条边,使拓扑排序后序列字典序最大 分析: 因为我们要求最后的拓扑序列字典序最大,所以一定要贪心地将标号越大的点越早入队.我们定义点i的入度为di. 假设当前还能删去k条边,那么我们一定会 ...

  9. sql 更新一列为行号

    update u_menu set issort=t1.rowId from (  --select * from  --(   select cmenu_id,ROW_NUMBER() over(O ...

  10. android图像模糊技术

    今天我们来更深入了解一下Android开发上的模糊技术.我读过几篇有关的文章,也在StackOverFlow上看过一些相关教程的帖子,所以我想在这里总结一下学到的东西. 为什么学习这个模糊技术? 现在 ...