iOS 定时器
2015-08-31 23:07
330 查看
<pre name="code" class="html">
1.CGD定时器
<pre name="code" class="objc">- (IBAction)countDown:(id)sender { __block int currentSeconds = 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_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC); dispatch_source_set_event_handler(timer, ^{ if (currentSeconds <= 0) { dispatch_source_cancel(timer); dispatch_async(dispatch_get_main_queue(), ^{ self.timeButton.enabled = YES; [self.timeButton setTitle:@"验证" forState:UIControlStateNormal]; }); } else { currentSeconds--; dispatch_async(dispatch_get_main_queue(), ^{ self.timeButton.enabled = NO; [self.timeButton setTitle:[NSString stringWithFormat:@"%d秒",currentSeconds] forState:UIControlStateNormal]; }); } }); //启动定时器 dispatch_resume(timer); }
2.NSTimer定时器
<pre name="code" class="objc">-(void)lookBackClick:(UIButton *)btn { NSDictionary *params = @{@"phone":fieldMobile.text}; [NetworkHandle post:CAPTCHA_URL parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary *response) { NSLog(@"------%@",operation.responseString); NSDictionary *rs = [NSJSONSerialization JSONObjectWithData:operation.responseData options:NSJSONReadingMutableContainers error:nil]; if (rs) { codeString = rs[@"ds"]; seconds = 60; [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES]; [getButton setEnabled:NO]; } }]; } - (void)onTimer:(id)userInfo { [getButton setTitle:[NSString stringWithFormat:@"%d", --seconds] forState:UIControlStateDisabled]; if (seconds == 0) { [getButton setTitle:@"获取验证码" forState:UIControlStateNormal]; [getButton setEnabled:YES]; NSTimer *timer = (NSTimer *)userInfo; [timer invalidate]; } }
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- 加载带有手势识别器的XIB文件需注意哪些问题
- 仅需几行代码实现方便易用的状态栏指示器