ios 使用gcd 显示倒计时

 __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),NSEC_PER_SEC * 1.0 , 0);//每秒执行
    dispatch_source_set_event_handler(timer, ^{
        if (timeout <= 0) {

            dispatch_source_cancel(timer);
            dispatch_async(dispatch_get_main_queue(), ^{
                CNSLog(@"获取验证码");
                self.getVerificationCodeButton.enabled = YES;
                self.getVerificationCodeLabel.text = @"获取验证码";
                self.getVerificationCodeLabel.textColor = [UIColor whiteColor];
            });
        }
        else {

            NSString * strTime = [NSString stringWithFormat:@"请稍等(%d秒)",timeout];
            dispatch_async(dispatch_get_main_queue(), ^{
                CNSLog(@"timeout = %d",timeout);

                self.getVerificationCodeButton.enabled = NO;
                self.getVerificationCodeLabel.textColor = UIColorFromRGB(0xe6e6e6);
                self.getVerificationCodeLabel.text = strTime;

            });
            timeout -- ;
        }
    });

    dispatch_resume(timer);

原文:http://blog.csdn.net/fanxun1982/article/details/8678362

时间: 2024-08-02 22:57:22

ios 使用gcd 显示倒计时的相关文章

使用 GCD 实现倒计时效果

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UIViewController 4 @property (assign, nonatomic) NSInteger surplusSecond; 5 6 @property (strong, nonatomic) IBOutlet UILabel *lblMessage; 7 @property (strong, nonatomic

IOS 键盘的显示与关闭,以及移动显示(UITextView处理完整版)

IOS 键盘的显示与关闭 在每一个IOS应用中,几乎不可避免的要进行文本输入操作,例如要求用户填写登陆注册信息,进行话题的评论回复,等等.用到的文本输入组件有UITextField,UITextView,对于这两个组件的相关属性和方法想必大家都很熟悉,但貌似对于键盘的显示或隐藏过程貌似常常不是很清楚,其实本人也是一知半解,所以趁此做简单的总结,基本上以下描述出自于官方的文档,并没有什么更改. 1.开启键盘面板 当用户触击某一个view时,系统会自动指定该view为第一响应对象(first res

iOS多线程 GCD

iOS多线程 GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取. /*! * @function dispatch_get_main_queue * * @abstract * Returns the default queue that is bound to the main thread. *

iOS多线程GCD

Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取. /*! * @function dispatch_get_main_queue * * @abstract * Returns the default queue that is bound to the main thread. * * @discussi

iOS常用于显示几小时前/几天前/几月前/几年前的代码片段

iOS常用于显示几小时前/几天前/几月前/几年前的代码片段 2015-03-13 10:09 版权声明:请关注个人博客:http://www.henishuo.com/ print? /** * Retain a formated string with a real date string * * @param dateString a real date string, which can be converted to a NSDate object * * @return a strin

ios设置中显示自己的应用

1.建立一个setting bundle文件.如图: 2.会出现一个文件,打开Root.plist文件,对plist文件中的值进行设置. 3.其中设置中又6种样式. Group      开头的title Multi value Slider    拖拉设置 TextField   文本框 Title         文本 Toggle Switch 开关控件 4.代码实现,可以在程序内获取设置值. 在程序员中加入 NSUserDefaults *defaults = [NSUserDefaul

iOS开发- iOS7显示偏差(UITableView下移)解决办法

之前碰到过一个问题. 就是利用storyboard拖动出来的控件, 在iOS7上跑老是莫名的下移. 比如这样(红色区域为多余的) 解决办法: iOS7在Conttoller中新增了这个属性: automaticallyAdjustsScrollViewInsets,当设置为YES时(默认YES),如果视图里面存在唯一一个UIScrollView或其子类View,那么它会自动设置相应的内边距,这样可以让scroll占据整个视图,又不会让导航栏遮盖. 我们设置automaticallyAdjusts

IOS页面UILable显示多行文本

IOS页面UILable显示多行文本 最近有遇到过多行显示文本的问题 都是使用的uitextview来做到的  处理麻烦需要关闭滚动 还有输入等响应 而且本身uitextview控件比label大几倍 偶然无疑间发现了别人博客中的一个方法 转过来分享下 UILabel*label; //设置换行label.lineBreakMode = UILineBreakModeWordWrap; label.numberOfLines = 0; 换行符还是\n比如NSString * [email pro

iOS 输入地点 显示当前位置地图并用大头针标注

废话不多说 直接上项目工程  ,还是 先看下效果图吧! 项目中有两个文件,chonViewController 和mapLocation文件 ,mapLocation 文件用于地标显示 并有附加信息,昨天做得时候附加信息显示正常,今天想写点博客 却不显示了 ,很郁闷! 新建工程后 记得加入类库,MapKit.framework 具体添加方法 这里不在说明了 下面 看下 chonViewController.h 文件 代码如下: #import <UIKit/UIKit.h> #import &