__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 ,队列);
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 setTitle :tittle forState : UIControlStateNormal ];
自我。 userInteractionEnabled = YES ;
自我。选择!= 自我。 userInteractionEnabled ;
});
} else {
// int minutes = timeout / 60;
int seconds = timeOut%60 ;
NSString * strTime = [ NSString stringWithFormat:@“%。2d”,seconds];
dispatch_async ( dispatch_get_main_queue (),^ {
//设置界面的按钮显示根据自己需求设置
// NSLog(@“____%@”,strTime);
if(![strTime isEqualToString:@“00” ]){
[ self setTitle :[ NSString stringWithFormat :@“%@%@ s” ,waitTittle,strTime] forState : UIControlStateNormal ];
}
else {
[ self setTitle :[ NSString stringWithFormat :@“%@%lds” ,waitTittle,(long )timeOut] forState : UIControlStateNormal ];
}
自我。 userInteractionEnabled = NO ;
自我。选择!= 自我。 userInteractionEnabled ;
});
时间到 - ;
}
});
dispatch_resume (_timer);