Swift3.0封装发送手机号获得验证码倒计时以及重新获取验证码

先写代码,之后写讲解,最近有点忙


 //发送验证码
    @IBAction func sendCodeBtn(_ sender: Any) {
        
        var codeNum = codeNumTF.text
        
        //调用方法
        self.countDown(timeOut: 5)
          
    }
    
    //验证码倒计时
    func countDown(timeOut:Int){
        
        //倒计时时间
        var timeout = timeOut
        let queue:DispatchQueue = DispatchQueue.global(qos: .default)
        
        // 在global线程里创建一个时间源
        let codeTimer = DispatchSource.makeTimerSource(queue:queue)
        
        
           codeTimer.scheduleRepeating(deadline: .now(), interval:.seconds(1))

        //每秒执行
        codeTimer.setEventHandler(handler: { () -> Void in
            if(timeout<=0){ //倒计时结束,关闭
                
                
                codeTimer.cancel()
                
                DispatchQueue.main.sync(execute: { () -> Void in
                    //设置界面的按钮显示 根据自己需求设置
                    self.sendCode.setTitle("重新发送", for: UIControlState.normal)
                    
                    self.sendCode.isUserInteractionEnabled = true
                    
                    
                })
            }else{//正在倒计时
                
                let seconds = timeout
                let strTime = NSString.localizedStringWithFormat("%.d", seconds)
                
                DispatchQueue.main.sync(execute: { () -> Void in
                    //                    NSLog("----%@", NSString.localizedStringWithFormat("%@S", strTime) as String)
                    
                    UIView.beginAnimations(nil, context: nil)
                    UIView.setAnimationDuration(1)
                    //设置界面的按钮显示 根据自己需求设置
                    self.sendCode.setTitle(NSString.localizedStringWithFormat("%@S", strTime) as String, for: UIControlState.normal)
                    UIView.commitAnimations()
                    self.sendCode.isUserInteractionEnabled = false
                })
                timeout -= 1;
            }
            
        })
        codeTimer.resume()
    }
        
        
}

貌似不用讲解,太简单了

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,136评论 25 708
  • 打开朋友圈,手指向下滑了几下,又一“广告狗”!点击头像 ---- 右上角 ---- 设置朋友圈权限 ---- 不看...
    安卓大叔阅读 598评论 2 2
  • 满江红 佘山感怀 【现代】王勉之 清明时节,天大晴、闲游佘山。才子台,遥望山河,风景无际。曾几何时离与别,...
    南方尧子阅读 269评论 0 1
  • 有些人一别,便是永别。 连转身都猝不及防。 淡出你的世界, 从此杳无音信。 悄然听到你的消息, 不知一切可好。 不...
    柚萫阅读 119评论 2 2
  • 我向来是不惮以最坏的恶意来推测中国人的,
    苏方生阅读 247评论 0 0