アプリのデザインとレイアウト

複雑なインターフェースの構成




訳注:以下、必要な場所においては Mac と iPhone 両方のセクションを提供しています。
Mac → セクション 5、iPhone → セクション 105 とします。








    CategoryRow.swift


  1. import SwiftUI
  2. struct CategoryRow: View {
  3. var categoryName: String
  4. var items: [Landmark]
  5. var body: some View {
  6. VStack(alignment: .leading) {
  7. Text(categoryName)
  8. .font(.headline)
  9. .padding(.leading, 15)
  10. .padding(.top, 5)
  11. ScrollView(.horizontal, showsIndicators: false) {
  12. HStack(alignment: .top, spacing: 0) {
  13. ForEach(items) { landmark in
  14. NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
  15. CategoryItem(landmark: landmark)
  16. }
  17. }
  18. }
  19. .frame(height: 185)
  20. }
  21. }
  22. }
  23. struct CategoryRow_Previews: PreviewProvider {
  24. static var landmarks = ModelData().landmarks
  25. static var previews: some View {
  26. CategoryRow(
  27. categoryName: landmarks[0].category.rawValue,
  28. items: Array(landmarks.prefix(4))
  29. )
  30. }
  31. }


プレビュー その 1



    CategoryItem.swift


  1. import SwiftUI
  2. struct CategoryItem: View {
  3. var landmark: Landmark
  4. var body: some View {
  5. VStack(alignment: .leading) {
  6. landmark.image
  7. .renderingMode(.original)
  8. .resizable()
  9. .frame(width: 155, height: 155)
  10. .cornerRadius(5)
  11. Text(landmark.name)
  12. .foregroundColor(.primary)
  13. .font(.caption)
  14. }
  15. .padding(.leading, 15)
  16. }
  17. }
  18. struct CategoryItem_Previews: PreviewProvider {
  19. static var previews: some View {
  20. CategoryItem(landmark: ModelData().landmarks[0])
  21. }
  22. }


プレビュー その 2



    ContentView.swift


  1. import SwiftUI
  2. struct ContentView: View {
  3. enum Tab {
  4. case featured
  5. case list
  6. }
  7. var body: some View {
  8. LandmarkList()
  9. }
  10. }
  11. struct ContentView_Previews: PreviewProvider {
  12. static var previews: some View {
  13. ContentView()
  14. .environmentObject(ModelData())
  15. }
  16. }



プレビュー その 3



    ContentView.swift


  1. import SwiftUI
  2. struct ContentView: View {
  3. @State private var selection: Tab = .featured
  4. enum Tab {




    ContentView.swift


  1. var body: some View {
  2. TabView(selection: $selection) {
  3. CategoryHome()
  4. .tag(Tab.featured)
  5. LandmarkList()
  6. .tag(Tab.list)
  7. }
  8. }
  9. }


プログラム全体 その 1


プレビュー その 4



    ContentView.swift


  1. TabView(selection: $selection) {
  2. CategoryHome()
  3. .tabItem {
  4. Label("Featured", systemImage: "star")
  5. }
  6. .tag(Tab.featured)
  7. LandmarkList()
  8. .tabItem {
  9. Label("List", systemImage: "list.bullet")
  10. }
  11. .tag(Tab.list)
  12. }


プレビュー その 5








セクション 1セクション 2セクション 3
セクション 4セクション 5
セクション 101セクション 102セクション 103
セクション 104セクション 105






目次
Xcode の新機能

フレームワーク

  • SwiftUI

  • ビューの作成と結合

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    ビルドリストとナビゲーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7

    セクション 8


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107

    セクション 108

    ユーザー入力の処理

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    パスとシェイプの描画

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    ビューと移行のアニメーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    複雑なインターフェースの構成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UI コントロールを扱う

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UIKit とのインターフェース

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    watchOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    macOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107