Twitter for iOSには選択中のタブをもう1度タップしたら最上部までスクロールするという機能があります。便利ですね。 Rxで1つ前の値を取得する - blog.ishkawa.org |
let tappedIndex = ReplaySubject<Int>.create(bufferSize: 1)
そして、前回値と比較してイベントを発火するのはこんな感じで書きました。 var differenceObservable: Observable<Bool> {
return Observable
.zip(tappedIndex, tappedIndex.skip(1)) { previous, current in
return previous != current
}.filter { $0 }
.asObservable()
}
あとはdifferenceObservableに対してsubscribeしておけば違う値が来たときにだけイベントが発火する仕様の完成です。 differenceObservable
.subscribe(onNext: { _ in print('do something') })
.disposed(by: disposeBag)
この方法のミソはReplaySubjectは流れるイベントをbuffer分おぼえていて、skipを使えば指定したところのイベントがとれるので直前に流れたイベントを取得することができるって感じです。 こんにちは。virapture…
View Comments
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good. https://www.binance.com/pt-BR/register?ref=B4EPR6J0
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.