SwiftUIでUIPageViewControllerとSegmentedControlを使う方法を紹介します。
Appleの公式チュートリアルを参考にしています。
UIKit
のUIPageViewController
をラップするPageViewController
と、SwiftUIからPageViewController
を使うためのPageView
を作ります。
まず、PageViewController
です。
UIViewControllerRepresentable
のmakeUIViewController(context: Context)
でUIPageViewController
を作成します。 updateUIViewController
でPageViewController
のページを表示します。
UIPageViewController
のDelegate
とDataSource
を設定するために、Coordinator
クラスを作成し、makeUIViewController
でdelgate
とdataSource
をcontext
のcoordinator
にセットします。
次にこのPageViewController
を使って、SwiftUIのViewを表示するPageView
を作ります。
こちらは簡単で、ページとして表示するViewと、currentPage
を受け取って、PageViewController
に渡します。
これをSegmentedControl
と組み合わせて使います。
PageView
のcurrentPage
は@Binding
プロパティなので、@State
プロパティをPageView
のcurrentPage
にセットします。これによって、currentPage
を書き換えると、ページが自動的に変更されます。
SwiftUIでSegmentedControl
を使うにはPicker
にSegmentedPickerStyle
をセットします。こちらのselection
プロパティも@Binding
プロパティなので、PageView
のcurrentPage
に渡したものと同じプロパティを渡します。
これでSegmentedControl
とPageView
を組み合わせることができました。
gistはこちら
エンジニアリング SwiftUI ページ SegmentedControl PageView
関連記事
-
2024/3/24
try! Swift Tokyo 2024
try! Swift Tokyo 2024の参加メモ
Swift
-
2023/1/31
SwiftUIでTabBarを非表示にする
SwiftUI TabBar
-
2023/1/14
Bootstrap5.3で追加されたダークモードに対応してみました
Bootstrap DarkMode
-
2021/2/17
brew upgradeで Your CLT does not support macOS 11というエラーがでた
homebrew macOS Big Sur
-
2020/12/1
Apple Silicon搭載 MacBook Pro M1で Homebrewとrbenvをインストールする
先日購入したApple Silicon搭載 MacBook Pro M1にこのブログをビルドするためにHomebrewとrbenvをインストールしたのでメモ。
Apple Silicon Homebrew rbenv
-
2020/11/27
Apple Silicon搭載のMacBook Pro M1が危うく文鎮化するところだったので記録
Apple Silicon搭載のMacBook Pro 13インチを仕事用に購入したのですが、クリーンインストールしたところ文鎮化しかけたので記録しておきます。
MacBook Pro Apple Apple Silicon M1
-
2020/6/23
Platform State of the Unionまとめ
Platform State of the Unioまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS
-
2020/6/23
WWDC2020キーノートまとめ
WWDC2020 キーノートまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS
-
2020/5/31
GitHub Pagesで無料ブログを作成する - Part4 自分のオリジナルのテーマを作る
Jekyllでは既存のテーマを使うこともできるのですが、さらに一歩踏み込んで、自分で既存のテーマをカスタマイズしたり、テーマを作ることもできます。
GitHub Pages ブログ
-
2020/5/28
GitHub Pagesで無料ブログを作成する - Part3 Jekyllの設定をカスタマイズする
前回の記事では、Jekyllのテーマを利用する方法と記事を追加する方法を紹介しました。今回はさらにJekyllをカスタマイズしていきますが、確認を簡単にするためにまずJekyllをローカル環境で実行する方法を紹介します。
GitHub Pages ブログ