解决倒计时按钮闪烁办法
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--;
}