【问题标题】:RxSwift: Observable while a button holds downRxSwift:按下按钮时可观察到
【发布时间】:2016-12-31 10:19:50
【问题描述】:

如何创建 Observable 在按住按钮时重复流式传输事件?

【问题讨论】:

    标签: swift rx-swift


    【解决方案1】:

    为了继续 rootcoder 响应,我遇到了一种情况,我必须识别超过 3 秒的长按

     let signinLongpress = signinButton.rx.controlEvent([.touchDown])
        signinLongpress
            .flatMapLatest { _ in
                Observable<Int64>.interval(3, scheduler: MainScheduler.instance)
                    .take(1)
            }
            .subscribe(onNext:{ _ in print("do fun stuff only once when longpress detected")})
            .disposed(by: disposeBag)
    

    【讨论】:

      【解决方案2】:

      即使我也在为您的问题寻找解决方案。我从 RxSwift 松弛频道获得了帮助。

          let button = submitButton.rx_controlEvent([.TouchDown])
            button
              .flatMapLatest { _ in
                  Observable<Int64>.interval(0.1, scheduler: MainScheduler.instance)
                      .takeUntil(self.submitButton.rx_controlEvent([.TouchUpInside]))
              }
              .subscribeNext{ x in print("BOOM \(x)") }
              .addDisposableTo(disposeBag)
      
      //prints BOOM 0 BOOM 1 BOOM 2 BOOM 3 BOOM 4 BOOM 5 for every 0.1 seconds
      

      还要检查Interval Documentation。感谢RxSwift slack 频道的@jari。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-03
        • 1970-01-01
        • 2017-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多