//倒计时时间

__block int timeout = 60;

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);//创建globle队列

//创建timer 定时器

dispatch_source_t  _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);

//每秒执行。 设置1s触发一次,0s的误差

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 源

dispatch_async(dispatch_get_main_queue(), ^{

//回主线程  更新UI   设置界面的按钮显示 根据自己需求设置

weakSelf.getCodeBtn.enabled = YES;

[weakSelf.getCodeBtn setTitle: @"获取验证码" forState:UIControlStateNormal];

});

}

else

{

int seconds = timeout % 60;

NSString *strTime = [NSString stringWithFormat:@"%.0d", seconds];

dispatch_async(dispatch_get_main_queue(), ^{

//回主线程 更新UI   设置界面的按钮显示 根据自己需求设置

weakSelf.getCodeBtn.enabled = NO;

weakSelf.getCodeBtn.titleLabel.textAlignment = NSTextAlignmentCenter;

if (strTime.length == 0) {

[self.getCodeBtn setTitle:[NSString stringWithFormat:@"验证码(60)"] forState:UIControlStateDisabled];

}

else

{

[self.getCodeBtn setTitle:[NSString stringWithFormat:@"验证码(%@)",strTime] forState:UIControlStateDisabled];

}

});

timeout--;

}

});

//开始执行dispatch源

dispatch_resume(_timer);

ios. GCD 倒计时时间相关推荐

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

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

  2. 网站倒计时使用服务器时间,根据服务器时间校准倒计时时间

    最近项目做一个答题活动, 需要所有用户统一时间并开始答题, 为了防止每个用户的时间不一样,所以需要从网络上获取时间,以此来校准 data() { return { countDownList: '00 ...

  3. iOS 减少编译时间

    iOS 减少编译时间 编译操作 每次在Xcode中写完代码,我们可能都需要按CMD + B 编译一下,或者直接按CMD + R运行,但是还是有需要先编译再运行. 显示编译时间设置 显示总编译时间 打开 ...

  4. [iOS] 封装倒计时(一句话调用,无内存泄漏)

    /**倒计时@param timeNum 倒计时时长@param endTitle 倒计时结束后的文本@param countingTitleColor 倒计时中的title颜色@param endT ...

  5. GCD -- 倒计时

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

  6. 微信小程序中苹果iOS手机显示时间格式NaN不正确的问题

    项目场景: 实现安卓Android和苹果iOS中微信小程序显示订单时间信息 问题描述 微信小程序中苹果iOS手机显示时间格式NaN不正确的问题 原因分析: 安卓微信小程序显示正常,苹果按格式YYYY- ...

  7. iOS 获取网络时间

    iOS 获取网络时间 也许你会因为当前手机时间不准确而导致自己的程序在使用时间上出现一些问题,那么下面这块代码也许会帮到你,实用的百度服务器的时间,如果没网络会使用系统默认时间! /*** 获取网络当 ...

  8. 倒计时时间可以任意设置的秒表

    本项目是采用STC89C52RC实现99秒倒计时器的设计与制作.   设计要求:通过STC89C52RC单片机的定时器0实现精确定时,并通过LCD1602实现倒计时时间的显示功能,初始值为99秒,并且 ...

  9. H5活动页面活动倒计时时间计算方案,已做兼容处理

    H5活动页面活动倒计时时间计算方案,已做兼容处理 需求描述: H5项目活动页中,涉及到活动倒计时时间差值计算,倒计时时间的格式为:如果大于1天则显示天数(如:10天),如果小于一天则显示时分秒(如:0 ...

最新文章

  1. linux 驱动 内核模式,Linux内核模块和驱动的编写
  2. oracle asm 日志,Oracle+RAC+ASM数据库ora-00257日志归档器错误解决方法
  3. java多线程系列:通过对战游戏学习CyclicBarrier
  4. 如何获取组SPGroup的描述Description信息
  5. 黄聪:【强烈推荐】搜索引擎排名决定一切吗!
  6. 现代软件工程讲义 12 绩效管理
  7. 08.28 JavaScript 边界 选择修饰符 模式单元 修饰符 正则的使用
  8. 会声会影x4素材_小技巧!灵活使用会声会影
  9. Stack Overflow首席大神,他回答了超过3万个问题
  10. php 字符串包含另一个字符串_利用PHP的字符串解析特性Bypass
  11. 暴风一号1kb病毒又称快捷方式病毒
  12. 机器学习算法对比分析
  13. 项目,项目集与项目组合的区别
  14. 【MySQL高性能】Canal数据同步神器
  15. Uniapp消息推送配置各个厂商UniPush
  16. KGB知识图谱深入挖掘金融行业的知识关联
  17. 独立董事、内部董事、执行董事、外部董事、非执行董事概念
  18. 两年,从纯小白到腾讯阿里,应届非计算机毕业生的2014互联网求职之路(转)...
  19. restful 验证码平台请求验证
  20. python uniform()

热门文章

  1. dumpbin的使用
  2. python中列表 字典 元祖 enumerate()函数
  3. 原码,反码,补码,移码四种机器码的表示方法及0的四种表示方法
  4. Python__repr__()方法:显示属性
  5. 【BZOJ 1449】 1449: [JSOI2009]球队收益 (最小费用流)
  6. piblog 0.1
  7. 安装Windows7出现:”安装程序无法创建新的系统分区 也无法定位系统分区“ 终极解决方案...
  8. FireMonkey 平台初探
  9. 多播委托(multicast delegate)
  10. 苹果 M1 “痛失” Windows 11!