mirror of
https://github.com/ivanvorobei/SwiftUI.git
synced 2026-03-19 07:54:09 +01:00
72 lines
2.1 KiB
Swift
Executable File
72 lines
2.1 KiB
Swift
Executable File
/*
|
||
See LICENSE folder for this sample’s licensing information.
|
||
|
||
Abstract:
|
||
A view showing the details for a landmark.
|
||
*/
|
||
|
||
import SwiftUI
|
||
|
||
struct LandmarkDetail: View {
|
||
@EnvironmentObject var userData: UserData
|
||
var landmark: Landmark
|
||
|
||
var landmarkIndex: Int {
|
||
userData.landmarks.firstIndex(where: { $0.id == landmark.id })!
|
||
}
|
||
|
||
var body: some View {
|
||
VStack {
|
||
MapView(coordinate: landmark.locationCoordinate)
|
||
.edgesIgnoringSafeArea(.top)
|
||
.frame(height: 300)
|
||
|
||
CircleImage(image: landmark.image(forSize: 250))
|
||
.offset(x: 0, y: -130)
|
||
.padding(.bottom, -130)
|
||
|
||
VStack(alignment: .leading) {
|
||
HStack {
|
||
Text(verbatim: landmark.name)
|
||
.font(.title)
|
||
|
||
Button(action: {
|
||
self.userData.landmarks[self.landmarkIndex]
|
||
.isFavorite.toggle()
|
||
}) {
|
||
if self.userData.landmarks[self.landmarkIndex]
|
||
.isFavorite {
|
||
Image(systemName: "star.fill")
|
||
.foregroundColor(Color.yellow)
|
||
} else {
|
||
Image(systemName: "star")
|
||
.foregroundColor(Color.gray)
|
||
}
|
||
}
|
||
}
|
||
|
||
HStack(alignment: .top) {
|
||
Text(verbatim: landmark.park)
|
||
.font(.subheadline)
|
||
Spacer()
|
||
Text(verbatim: landmark.state)
|
||
.font(.subheadline)
|
||
}
|
||
}
|
||
.padding()
|
||
|
||
Spacer()
|
||
}
|
||
}
|
||
}
|
||
|
||
#if DEBUG
|
||
struct LandmarkDetail_Preview: PreviewProvider {
|
||
static var previews: some View {
|
||
let userData = UserData()
|
||
return LandmarkDetail(landmark: userData.landmarks[0])
|
||
.environmentObject(userData)
|
||
}
|
||
}
|
||
#endif
|