美文网首页
iOS开发-使用GCD机制来实现倒计时功能

iOS开发-使用GCD机制来实现倒计时功能

作者: 王天琦 | 来源:发表于2016-07-19 14:36 被阅读115次

使用GCD机制来实现倒计时功能。实现的是类似注册页面发送验证码的倒计时。

- (void)getCodeSuccess

{

__block int timeout=60; //倒计时时间

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_async(dispatch_get_main_queue(), ^{

//设置界面的按钮显示 根据自己需求设置

[_BTN_code setBackgroundImage:[UIImage imageNamed:@"send_yanzhengma"] forState:UIControlStateNormal];

[_BTN_code setTitle:@"发送验证码" forState:UIControlStateNormal];

_BTN_code.userInteractionEnabled = YES;

});

}else{

// int minutes = timeout / 60;

int seconds = timeout % 60;

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

dispatch_async(dispatch_get_main_queue(), ^{

//设置界面的按钮显示 根据自己需求设置

NSLog(@"____%@秒",strTime);

[_BTN_code setBackgroundImage:[UIImage imageNamed:@"send_yanzhengma"] forState:UIControlStateNormal];

[_BTN_code setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:UIControlStateNormal];

_BTN_code.userInteractionEnabled = NO;

});

timeout--;

}

});

dispatch_resume(_timer);

}

相关文章

  • iOS开发-使用GCD机制来实现倒计时功能

    使用GCD机制来实现倒计时功能。实现的是类似注册页面发送验证码的倒计时。 - (void)getCodeSucce...

  • NSOperation的使用注意点

    iOS开发中我们可以通过使用NSOperation/NSOperationQueue来实现多线程,是基于GCD的一...

  • iOS开发-GCD多线程来写倒计时

    今天给各位猿友说一下怎么使用GCD来实现倒计时的功能效果,首先给大家简单介绍一下实现的原理:使用GCD创建定时器并...

  • Swift4下使用GCD实现倒计时功能

    倒计时经常在实现获取验证码功能的时候使用,今天在实现注册功能时用到了,就用GCD实现了这个方法: GCD在Swif...

  • ios开发实现画板功能

    ios开发实现画板功能 ios开发实现画板功能

  • iOS 开发之 GCD 不同场景使用

    iOS 开发之 GCD 不同场景使用 本文在iOS 开发值 GCD 基础 的基础上,继续总结了 GCD 的一些AP...

  • iOS之多线程

    iOS开发中,现在大部分都使用方便的GCD来管理多线程开发,那什么是GCD,以及它是如何使用的呢?这篇文章主要介绍...

  • iOS开发多线程之GCD

    iOS开发多线程之GCDiOS开发之GCD同步任务加强iOS开发之GCD串行队列iOS开发之GCD并发队列 GCD...

  • iOS实现倒计时的三种方式

    iOS实现倒计时的三种方式 做iOS app开发的过程当中,经常会出现获取验证码等需求,这个时候一般会使用倒计时来...

  • iOS开发之GCD并发队列

    iOS开发多线程之GCDiOS开发之GCD同步任务加强iOS开发之GCD串行队列iOS开发之GCD并发队列 03 ...

网友评论

      本文标题:iOS开发-使用GCD机制来实现倒计时功能

      本文链接:https://www.haomeiwen.com/subject/pnbmjttx.html