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

解决倒计时按钮闪烁办法

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--;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.NSString过滤特殊字符串定义一个特殊字符的集合NSCharacterSet set = [NSChara...
    奋拓达阅读 4,189评论 0 0
  • 1.短信倒计时的方法使用的是一个多线程的的倒计时的处理方法:(采用的是MOB的短信的哪个三方库的东西) __blo...
    峰子1994阅读 3,008评论 0 0
  • 大家在做验证码的时候一般都会用到倒计时,基本上大家实现的方式都差不多,先贴出一些代码来.. -(void)star...
    圣僧留步阅读 4,168评论 0 2
  • 很多项目中,都会涉及到倒计时的功能, 发送完验证码开始倒计时,针对这个我个人封装了一个简单的方法来实现此功能, 话...
    LOVE婷阅读 2,784评论 0 0
  • 任何时候你使用一个$符号就可以插入一个表达式。如果这个表达式有一点复杂,你就需要使用一对大括号括起来:"Your ...
    正义吖阅读 3,440评论 0 2