はじめに
iPadの画面サイズを最大限に利用するために、1つの画面に複数の階層を作成するのが理想です。
今回のはiPhoneだけじゃなく、iPadでもスライダーバーとラベルも作成していきます。
目次
SlidebarとLabel
・cmd N
で新しいファイルSlidebarを作成します。
・前回の記事と同じくList
を使い、Label
をGroup化します。
・前回のlistStyle
はInsetGroupedListStyle()
を使いましたが、今回はSidebarListStyle()
を使います。
・List
ごとをNavigationView
に取り込んで、navigationTitle
でタイトルを追加します。navBarにタイトルは自動生成されます。
NavigationView {
Label("Tutorials", systemImage: "list.bullet.rectangle")
Label("Livestreams", systemImage: "tv")
Label("Certificates", systemImage: "mail.stack")
Label("Search", systemImage: "magnifyingglass")
}
.listStyle(SidebarListStyle())
.navigationTitle("Learn")
NavigationLink
・UIKitではボタンなどaddTarget
を使って画面遷移しますが、SwiftUIではNavigationLink
を使います。
・とてもシンプルで、引数に遷移先のViewを指定し、クロージャー内でトリガーを定義します。
遷移先はCoursesView()
を指定します。
NavigationView {
List {
NavigationLink(destination: CoursesView()) {
Label("Courses", systemImage: "book.closed")
}
}
iPad
・iPadで実行する際に、デフォルトの画面はCouresesView()
が表示されません。暫定的な解決方法は一番最初に一回CouresesView()
を実行してもらいます。
まとめ
・SnapKitとAutoLayoutに全然負けない気がしました。
・styleまわりは馴染みがなくて、覚えていくしかありません。
ソースコードGithub