(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