[iPhone] UIScrollView ページ スクロール

アルバムアプリのように、1画面に写真1枚の表示させて、横フリップで画像が次々にスクロールさせるにはどうすればいいのでしょうか、UIScrollView はある程度簡単に作れるようになっています。

scrollview-paging

Swift 5.1
Xcode 11.3.1

UIScrollView

SwiftUIでは今のところScrollViewはできないので今までと同じようにStoryboardを使って作成します。(そのうちできるようになるのかもしれません)

基本的には横スクロールです。ページ毎に画像がスクロールさせるためPaging Enableを設定するところがポイントです。

画像をAssets.xcassetsに追加

適当な画像を4枚選んで使います。ここではヨガの画像を yoga_0@2x.jpg から yoga_3@2x.jpg という名前にしてAssets.xcassetsにコピペします。@2xを名前に入れてあるので2xとして設定されています。


UIScrollViewの設定

ScrollViewは、「View」「Show Library」からObjectsライブラリーが現れるので

ScrollViewを検索するとでてきます。

 

Storyboard を開き背景色を適当に決めます。Scroll View をSafeAreaあたりに設置します。



ここでScroll View の Paging Enabled にチェックを入れることにより、ページスクロールが可能となります。

コードの記述

  1. UIScrollView のインスタンスを生成
  2. 画像ごとにそのframeサイズを設定し
  3. addSubview でUIScrollViewに加える
  4. 描画開始のカーソルポイントを決め
  5. UIScrollViewのコンテンツサイズを画像のtotalサイズに合わせる

ViewController.swift


Storyboard の ScrollView の 「New Reference Outlet」 をコードと紐付けします。
これで、横スクロールで次々と画像が表示されていきます。


サンプル動画

関連ページ:

References:
UIScrollView — UIKit | Apple Developer Documentation
isPagingEnabled — UIScrollView | Apple Developer Documentation
About Scroll View Programming — Apple Developer
pagingEnabled — UIScrollView | Apple Developer Documentation