iOS倒计时

  1. #pragma mark - 开始计时器  
  2. -(void)startTime{  
  3.       
  4.     __block int timeout = 59//倒计时时间  
  5.     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);  
  6.     dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 00,queue);  
  7.     dispatch_source_set_timer(_timer,dispatch_walltime(NULL0),1.0*NSEC_PER_SEC, 0); //每秒执行  
  8.     dispatch_source_set_event_handler(_timer, ^{  
  9.         if(timeout<=0){ //倒计时结束,关闭  
  10.             dispatch_source_cancel(_timer);  
  11.             dispatch_async(dispatch_get_main_queue(), ^{  
  12.                 //设置界面的按钮显示 根据自己需求设置  
  13.                 [_getCodeBtn setTitle:@"获取验证码" forState:UIControlStateNormal];  
  14.                 _getCodeBtn.userInteractionEnabled = YES;  
  15.             });  
  16.         }else{  
  17.             int seconds = timeout % 60 ;  
  18.             NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];  
  19.             dispatch_async(dispatch_get_main_queue(), ^{  
  20.                 //设置界面的按钮显示 根据自己需求设置  
  21.                 //NSLog(@"____%@",strTime);  
  22.                 [UIView beginAnimations:nil context:nil];  
  23.                 [UIView setAnimationDuration:1];  
  24.                 [_getCodeBtn setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:UIControlStateNormal];  
  25.                 [UIView commitAnimations];  
  26.                 _getCodeBtn.userInteractionEnabled = NO;  
  27.             });  
  28.             timeout--;  
  29.         }  
  30.     });  
  31.     dispatch_resume(_timer);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值