广告页面的跳过按钮倒计时功能可以通过定时器或者GCD实现

时间:2022-05-11 20:17:20

// GCD倒计时

  • (void)startCoundown
    {
    __block

int timeout = showtime + 1;

//倒计时时间 + 1

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

        });

    }else{

        dispatch_async(dispatch_get_main_queue(), ^{

            [_countBtn setTitle:[NSString stringWithFormat:@"跳过%d",timeout] forState:UIControlStateNormal];

        });

        timeout--;

    }

});

dispatch_resume(_timer);

}