【发布时间】:2016-12-31 10:19:50
【问题描述】:
如何创建 Observable 在按住按钮时重复流式传输事件?
【问题讨论】:
如何创建 Observable 在按住按钮时重复流式传输事件?
【问题讨论】:
为了继续 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)
【讨论】:
即使我也在为您的问题寻找解决方案。我从 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。
【讨论】: