创建倒计时按钮,以及倒计时按钮闪烁的解决办法

解决倒计时按钮闪烁办法

UIButton*getCode = [UIButton buttonWithType:(UIButtonType)];

设置UIButton时将(UIButtonType)设置为UIButtonTypeCustom例如:

UIButton*getCode = [UIButton buttonWithType:UIButtonTypeCustom];

就可以解决按钮闪烁问题

倒计时功能

__blockinttimeout=59;//倒计时时间

dispatch_queue_tqueue =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.postGetCodesetTitle:@"获取验证码"forState:UIControlStateNormal];

[self.postGetCodesetBackgroundColor:[UIColorwhiteColor]];

[self.postGetCodesetTitleColor:[UIColorlightGrayColor]forState:UIControlStateNormal];

self.postGetCode.userInteractionEnabled=YES;

});

}else{

NSString*strTime = [NSStringstringWithFormat:@"倒计时:%.2ds", timeout];

dispatch_async(dispatch_get_main_queue(), ^{

//设置界面的按钮显示根据自己需求设置

[self.postGetCodesetTitle:[NSStringstringWithFormat:@"%@",strTime]forState:UIControlStateNormal];

[self.postGetCodesetBackgroundColor:[UIColorlightGrayColor]];

[self.postGetCodesetTitleColor:[UIColorwhiteColor]forState:UIControlStateNormal];

self.postGetCode.userInteractionEnabled=NO;

});

timeout--;

}

你可能感兴趣的:(创建倒计时按钮,以及倒计时按钮闪烁的解决办法)