之前用RxSwift的手势是这样的:
- 创建一个UITapGestureRecognizer
- 给View加入手势识别
- 用Rx的方式监听手势事件
let myView: UIView = UIView()
let tapGesture = UITapGestureRecognizer()
myView.addGestureRecognizer(tapGesture)
tapGesture.rx.event
.debug("Tap")
.subscribe()
.disposed(by: disposeBag)
当遇到RxGesture后,一切都变了下面这样
- 点击
let myView: UIView = UIView()
myView.rx.tapGesture()
.when(.recognized)
.subscribe()
.disposed(by: disposeBag)
使用when过滤手势的状态UIGestureRecognizerState
- 双击
myView.rx.tapGesture() { gesture, _ in
gesture.numberOfTapsRequired = 2
}
.when(.recognized)
.subscribe(onNext: { _ in
print("Double Click")
})
.disposed(by: disposeBag)
- 长按
myView.rx.longPressGesture()
.when(.began)
.subscribe(onNext: { _ in
print("Long Press")
})
.disposed(by: disposeBag)
- 滑动
myView.rx.swipeGesture(.up, .down)
.when(.recognized)
.subscribe(onNext: {
print("Swipe \($0.direction.rawValue)")
})
.disposed(by: disposeBag)
网友评论