LoginSignup
4
5

More than 5 years have passed since last update.

rx.tapを自前で生やす

Posted at

RxSwiftのReactiveに対してextensionを生やすことで、rx.hogeを生やす事ができる。


extension Reactive where Base: Button {
  var tap: Observable<Void> {
    return base.tapped
  }
}

final class Button: UIView {
  fileprivate let tapped = PublishSubject<Void>()

  override func touchesEnded(_ touches: [UITouch]) {
    tapped.onNext()
  }
}

こんな感じで実装する。

button.rx.tap.subscribe()

こんな感じで使う。

これのいいところ

・RxCocoaの記法と同じなので、見栄えが良い。
・PublishSubjectのtappedをクラス内に隠蔽出来るため、外からtappedを呼ぶ事故が防げる

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5