読者です 読者をやめる 読者になる 読者になる

Goleiro

子育て / 読書 / 生き方 / デジモノ etc.

Swift3対応!RxSwiftとStoryBoard(InterfaceBuilder)を使ってUIScrollViewとUIPageControlを連携させる方法

f:id:HAGIZO:20170106183902g:plain

このUI。

よく見かけるんですがRxSwift使うってなると意外と実装を理解するのに時間がかかりました。。

ということで今回も実装方法をメモしておきます。

 

詳解 Swift 改訂版

詳解 Swift 改訂版

 

 

主なポイントは以下の通り。

  • UIPageControlの実体はStoryBoard側に定義して、参照とUIControlEventsのValueChangedをコード側でハンドル
  • ScrollViewのページインデックスはInt型のプロパティで管理しておき、関数内でOffsetの考慮をしなくても良いようにする
  • UIPageControlからUIScrollViewのオフセットを操作する場合はアニメーション付きにする
  • UIScrollViewのContentOffsetはRxで監視
  • UIPageControlのCurrentPageもRxで監視、専用のプロパティに値を格納

サンプルコードはこちらです。

manage UIPageControl and UIScrollView with RxSwift

 

詳解 Swift 改訂版

詳解 Swift 改訂版