+ (void)changeButtonTitle:(UIButton *)sender
{
__block NSInteger 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(), ^{
//设置界面的按钮显示
sender.backgroundColor = KLColorFrom16RGB(0xFF9933);
[sender setTitle:@"重新发送" forState:UIControlStateNormal];
[sender setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
sender.userInteractionEnabled = YES;
});
}
else
{
NSString *strTime = [NSString stringWithFormat:@"%ld", (long)timeout];
dispatch_async(dispatch_get_main_queue(), ^{
//设置界面的按钮显示 [_sendCodeBtn setBackgroundImage:[UIImage createImageWithColor:KLColorFrom16RGB(0xd0d0d0)] forState:UIControlStateDisabled];
[sender setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:UIControlStateNormal];
[sender setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
sender.backgroundColor = KLColorFrom16RGB(0xd0d0d0);
sender.userInteractionEnabled = NO;
});
timeout--;
}
});
dispatch_resume(_timer);
}
iOS开发 线程计时器
最新推荐文章于 2019-01-16 11:07:54 发布