美文网首页
ios GCD中的倒计时与延时函数

ios GCD中的倒计时与延时函数

作者: 缘來諟夢 | 来源:发表于2020-12-18 10:11 被阅读0次
    ///倒计时
        __block NSInteger time = 7; //倒计时时间
        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(time <= 0){ //倒计时结束,关闭
                dispatch_source_cancel(_timer);
                dispatch_async(dispatch_get_main_queue(), ^{
                    //设置按钮的样式
                    NSLog(@"延迟到七秒才出来");
                });
            } else {
                NSInteger seconds = time % 60;
                dispatch_async(dispatch_get_main_queue(), ^{
                    //设置按钮显示读秒效果
                    NSLog(@"倒计时---(%.2ld)秒",(long)seconds);
                });
                time--;
            }
        });
        dispatch_resume(_timer);
       
    ///延时执行
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(8 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSLog(@"延迟到八秒才出来");
        });
    

    相关文章

      网友评论

          本文标题:ios GCD中的倒计时与延时函数

          本文链接:https://www.haomeiwen.com/subject/kayzgktx.html