美文网首页
常用方法

常用方法

作者: _风雨 | 来源:发表于2021-10-20 11:43 被阅读0次

Button倒计时

func showCountdownTime(_ time: Int, button: UIButton?) {
    var time = time
    
    let codeTimer = DispatchSource.makeTimerSource(flags: .init(rawValue: 0),
                                                   queue: DispatchQueue.global())
    
    codeTimer.schedule(deadline: .now(), repeating: .milliseconds(1000))  //此处方法与Swift 3.0 不同
    codeTimer.setEventHandler {
        
        time = time - 1
        
        DispatchQueue.main.async {
            button?.isEnabled = false
        }
        
        if time < 0 {
            codeTimer.cancel()
            
            DispatchQueue.main.async {
                button?.isEnabled = true
                button?.setTitle("发送验证码", for: .normal)
            }
            return
        }
        
        DispatchQueue.main.async {
            button?.setTitle("\(time)秒", for: .normal)
        }
    }
    codeTimer.activate()
}

相关文章

网友评论

      本文标题:常用方法

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