- (void)timeOut
{
__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(), ^{
//倒计时结束,关闭之后进行的操作。
[self.seconds setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
[self.seconds setTitle:@"00s" forState:UIControlStateNormal];
self.seconds.userInteractionEnabled = YES;
});
} else {
int allTime = (int)60 + 1;
int seconds = timeOut % allTime;
NSString *timeStr = [NSString stringWithFormat:@"%0.2d",seconds];
dispatch_async(dispatch_get_main_queue(), ^{
//倒计时进行中进行的操作
[self.seconds setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
self.seconds.layer.borderColor = [UIColor redColor].CGColor;
[self.seconds setTitle:[NSString stringWithFormat:@"%@s",timeStr] forState:UIControlStateNormal];
self.seconds.userInteractionEnabled = NO;
});
timeOut--;
}
});
dispatch_resume(_Timer);
}
ios 发送验证码
最新推荐文章于 2019-09-24 22:58:50 发布