SwiftUIで画面に色々表示するには

(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