UIButton倒计时

/**

*  倒计时按钮

*

@paramtimeLine 倒计时总时间

@paramtitle    还没倒计时的title

@paramsubTitle 倒计时中的子名字,如时、分

@parammColor  还没倒计时的颜色

@paramcolor    倒计时中的颜色

*/

- (void)startWithTime:(NSInteger)timeLine title:(NSString*)title countDownTitle:(NSString*)subTitle mainColor:(UIColor*)mColor countColor:(UIColor*)color {


    [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];

    __weak typeof(self) weakSelf = self;

    //倒计时时间

    __blockNSIntegertimeOut = timeLine;

    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(), ^{

                weakSelf.backgroundColor= mColor;

                [weakSelfsetTitle:title forState:UIControlStateNormal];

                weakSelf.userInteractionEnabled=YES;

            });

        }else{

            intallTime = (int)timeLine +1;

            intseconds = timeOut % allTime;

            NSString*timeStr = [NSStringstringWithFormat:@"%0.2d", seconds];

            dispatch_async(dispatch_get_main_queue(), ^{

                weakSelf.backgroundColor= color;

                [weakSelfsetTitle:[NSString stringWithFormat:@"%@%@",timeStr,subTitle] forState:UIControlStateNormal];

                weakSelf.userInteractionEnabled=NO;

            });

            timeOut--;

        }

    });

    dispatch_resume(_timer);

}

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

推荐阅读更多精彩内容

  • 地址链接
    MoneyLee阅读 229评论 0 0
  • 前些日子在咨询室见到一个被父母带着全国各地到处“看病”的18岁女孩,满脸的倔强,又貌似无所谓的神情,我想谁看了都会...
    石勤快阅读 461评论 0 0
  • 贫穷时,有了钱就能解决问题,那时有目标,有追求,也有幸福;而一旦有钱了,却有很多钱都解决不了的问题,那时的幸福又会...
    狼之恋阅读 173评论 0 0
  • 昨夜第一个梦里,爸爸一直出现,爸爸一个人住在老家,我也有接近一年的时间没有回去了,所以这次梦境中爸爸埋怨我...
    Melety阅读 168评论 0 0
  • 你如春风走来让我的生活更加精彩那荒凉的原野一片绿葱葱的生机你是我眼中的春天
    昊水长天阅读 83评论 1 5