标签:uibutton 按钮 关闭 queue string text 验证 glob blog
iOS 按钮倒计时功能, 建议把按钮换成label,这样会避免读秒时闪烁
1 __block int time = 60; 2 __block UIButton *verifybutton = _GetverificationBtn; 3 verifybutton.enabled = NO; 4 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 5 dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); 6 dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行 7 dispatch_source_set_event_handler(_timer, ^{ 8 if(time<=0){ //倒计时结束,关闭 9 dispatch_source_cancel(_timer); 10 dispatch_async(dispatch_get_main_queue(), ^{ 11 //设置界面的按钮显示 根据自己需求设置 12 [verifybutton setTitle:@"获取验证码" forState:UIControlStateNormal]; 13 verifybutton.enabled = YES; 14 }); 15 }else{ 16 dispatch_async(dispatch_get_main_queue(), ^{ 17 //设置界面的按钮显示 根据自己需求设置 18 verifybutton.backgroundColor = [UIColor grayColor]; 19 NSString *strTime = [NSString stringWithFormat:@"获取验证码(%d)",time]; 20 [verifybutton setTitle:strTime forState:UIControlStateNormal]; 21 verifybutton.titleLabel.textColor = [UIColor whiteColor]; 22 }); 23 time--; 24 } 25 }); 26 dispatch_resume(_timer);
标签:uibutton 按钮 关闭 queue string text 验证 glob blog
原文地址:http://www.cnblogs.com/crazygeek/p/6148656.html