標籤:blog io ar os sp for on div art
1、點擊發送驗證碼,開始計時
-(void)startTime{ __block int timeout=120; //倒計時時間 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.sendAuthCode setTitle:@"發送驗證碼" forState:UIControlStateNormal]; self.sendAuthCode.userInteractionEnabled = YES; self.sendAuthCode.titleLabel.font = [UIFont systemFontOfSize:10]; }); }else{ int seconds = timeout % 120; NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds]; dispatch_async(dispatch_get_main_queue(), ^{ //設定介面的按鈕顯示 根據自己需求設定 [self.sendAuthCode setTitle:[NSString stringWithFormat:@"%@秒後重發",strTime] forState:UIControlStateNormal]; self.sendAuthCode.titleLabel.font = [UIFont systemFontOfSize:10]; self.sendAuthCode.userInteractionEnabled = NO; }); timeout--; } }); dispatch_resume(_timer); }
ios中關於發送驗證碼的計時