美文网首页
Swift基于GCD实现的倒计时功能

Swift基于GCD实现的倒计时功能

作者: 一个七 | 来源:发表于2019-03-28 22:55 被阅读0次

    开发环境

    1.编译器版本:10.1
    2.sdk版本 12.1
    3.swift 版本 4.2

    实现代码

           var timeout = 60
            let queue = DispatchQueue.global()
            let timer = DispatchSource.makeTimerSource(flags: .init(rawValue: 0), queue: queue)
            timer.schedule(deadline: .now(), repeating:  .milliseconds(1000))
            timer.setEventHandler {
                timeout = timeout - 1
                if timeout < 0 {
                    DispatchQueue.main.async {
                        self.smbitBt?.isEnabled = true
                        self.smbitBt?.setTitle("重置", for: .normal)
                    }
                    timer.cancel()
                }else{
                    DispatchQueue.main.async {
                        self.smbitBt?.isEnabled = false
                        self.smbitBt?.setTitle("\(timeout)s", for: .normal)
                    }
                }
            }
            if #available(iOS 10.0, *) {
                timer.activate()
            } else {
                timer.resume()
                // Fallback on earlier versions
            }
        }
    

    相关文章

      网友评论

          本文标题:Swift基于GCD实现的倒计时功能

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