ContentView.swift
//
// ContentView.swift
// Swiftuitest
//
// Created by Cairocoders
//
import SwiftUI
struct ContentView: View {
let hikingTrails = [
Trail(name: "Mount Pinatubo", location: "Botolan", distance: 2.9),
Trail(name: "Mount Balingkilat", location: "Subic", distance: 1.2),
Trail(name: "Sampaloc Cove", location: "Subic", distance: 1.1),
Trail(name: "Mount Tapulao", location: "Palauig", distance: 1.3),
Trail(name: "Pundakit", location: "San Antonio", distance: 2.7),
]
var body: some View {
VStack{
GeometryReader { geometry in
Image("details")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: geometry.size.width, height: geometry.size.height)
.offset(y: geometry.frame(in: .global).minY/100)
.edgesIgnoringSafeArea(.all)
}
VStack {
List {
Section(header: ListHeader(), footer: ListFooter()) {
ForEach(hikingTrails) { trail in
TrailRow(trail: trail)
}
}
}.listStyle(GroupedListStyle())
}
Spacer()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct ListHeader: View {
var body: some View {
HStack {
Image(systemName: "map")
Text("Best Trails in Zambales")
}
}
}
struct ListFooter: View {
var body: some View {
Text("Ready to check out the best trails in Zambales for hiking, mountain biking, climbing or other outdoor activities? AllTrails has 12 hiking trails, mountain biking routes, backpacking trips and more.")
}
}
struct TrailRow: View {
var trail: Trail
var body: some View {
HStack {
VStack(alignment: .leading) {
Text(trail.name)
Text(trail.location).font(.subheadline).foregroundColor(.gray)
}
Spacer()
Text(String(format: "%.1f miles", trail.distance))
}
}
}
struct Trail: Identifiable {
var id = UUID()
var name: String
var location: String
var distance: Double
}
