Apr 19, 2016 Twitter for iOSには選択中のタブをもう1度タップしたら最上部までスクロールするという機能があります。便利ですね。 こういう機能を実装するには、1つ前に選択されていた値が何なのか知る必要があります。 桶の時代にはプロパティに前回の値を保存するのが定石でしたが、川の時代にはskip(1)してzip()するというのが定石です(たぶん)。 let tappedIndex: Observable<Int> = ... Observable .zip(tappedIndex, tappedIndex.skip(1)) { previousIndex, currentIndex in return previousIndex == currentIndex } .filter { $0 } .subscribeNext { _ in // 最上部までスクロール }
![Rxで1つ前の値を取得する](https://cdn-ak-scissors.b.st-hatena.com/image/square/b9732a1ac118089dee2b9879ebd68979afec92d7/height=288;version=1;width=512/http%3A%2F%2Fblog.ishkawa.org%2Fassets%2Fmisc%2Fblank.png)