倒计时发送

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

 

posted @ 2015-03-12 13:58  我的程序人生  阅读(238)  评论(0编辑  收藏  举报