(2) 画面に色々表示するには (2.1) ContentView()の例 struct ContentView: View { var body: some View { 「ここ」に書く } } (2.1.1) 表示の中身 struct ContentView: View { var body: some View { VStack { // 縦に並べる MapView() // 地図 CircleImage() // 丸いイメージ画像 VStack { Text("文字") // 文字 HStack { // 横に並べる Text("文字") // 文字 Spacer() // 空白 Text("文字") // 文字 } }.padding() // 周囲に空白 Spacer() // 空白 } // VStack } // some View } // View (2.2) LandmarkList()の例 struct LandmarkList: View { @EnvironmentObject private var userData: UserData // UserData()が変更されたら画面が変わる var body: some View { 「ここ」に書く } } (2.2.1) 表示の中身 struct LandmarkList: View { @EnvironmentObject private var userData: UserData var body: some View { NavigationView { List { Toggle(..) {..} // オン・オフできるボタン ForEach(並べるもの達) { 1個の表示物 in if それが表示対象なら { NavigationLink(タップしたら開く画面) { 表示するもの※ } } } }.navigationBarTitle(表題) } // NavigationView } // some View } // View (2.2.2) タップしたら開く画面 struct LandmarkDetail: View { @EnvironmentObject var userData: UserData // UserData()が変更されたら画面が変わる var landmark: Landmark // これで表示対象を受け取る var body: some View { VStack { // 縦に並べる MapView() // 地図 CircleImage() // 丸いイメージ画像 VStack { // 縦に並べる HStack { // 横に並べる Text("文字") // 文字 Button(action: {タップしたらすること}) { // ボタン ボタンの表示内容★とか☆ } // Button } // HStack }.padding() // 周囲に空白 Spacer() // 空白 } // VStack } // some View } // View (2.2.3) 表示するもの※ struct LandmarkRow: View { var landmark: Landmark // これで表示対象を受け取る var body: some View { HStack { // 横に並べる landmark.image // 画像 Text(landmark.name) // 文字 Spacer() // 空白 if landmark.isFavorite { // お気に入りなら Image() // 星の画像 } } // HStack } // some View } // View