美文网首页
swift 倒计时功能(粘贴复制就能使用)

swift 倒计时功能(粘贴复制就能使用)

作者: 鹏飞说 | 来源:发表于2019-10-18 08:37 被阅读0次

    首先在项目中进入RxCocoa 和RxSwift

    import RxCocoa
    import RxSwift
    

    声明需要的属性

    let disposed = DisposeBag()
    let timer = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
    let countDownStopped = Variable(true)
    let leftTime = Variable(Int(30))
    

    懒加载button和label,之后再加载view的时候先使lable隐藏,button展示

    leftLabel.isHidden = true
    barBtn.isHidden = false
    
    view.addSubview(barBtn)
    view.addSubview(leftLabel)
    

    这里就是最重要的方法,在点击button的时候调用这个方法就实现了

    func startClicked() {
            leftLabel.isHidden = false
            barBtn.isHidden = true
            self.countDownStopped.value = false
                timer.takeUntil(countDownStopped.asObservable().filter{$0})
                .subscribe(onNext: { [weak self](event) in
                    self!.leftTime.value -= 1
                    print("这里是剩余的时间:\(self?.leftTime.value ?? 0)")
                    self?.leftLabel.text = "这里是剩余的时间:\(self?.leftTime.value ?? 0)秒"
                    if (self!.leftTime.value == 0) {
                        print("倒计时结束")
                        self!.countDownStopped.value = true
                        self!.leftTime.value = 30
                        self!.leftLabel.isHidden = true
                        self!.barBtn.isHidden = false
                        self?.leftLabel.text = "这里是剩余的时间:\(self?.leftTime.value ?? 0)秒"
                    }
                }, onError: { (error) in
    
    
                }).disposed(by: disposed)
        }
    

    相关文章

      网友评论

          本文标题:swift 倒计时功能(粘贴复制就能使用)

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