HStack(alignment: .bottom) {
Text(mission.displayName)
.font(.largeTitle.bold())
Text(mission.launchDate?.formatted(date: .abbreviated, time: .omitted) ?? "N/A")
.font(.title3)
.foregroundStyle(.secondary)
}
struct CustomDividerView: View {
var body: some View {
Rectangle()
.frame(height: 2)
.foregroundColor(.lightBackground)
.padding(.vertical)
}
}
struct CrewMemberView: View {
let crewMember: Astronaut
let role: String
var body: some View {
Image(crewMember.id)
.resizable()
.scaledToFit()
.clipShape(.capsule)
.frame(width: 104, height: 72)
.overlay(
Capsule()
.stroke(.white, lineWidth: 1)
)
VStack(alignment: .leading) {
Text(crewMember.name)
.font(.headline)
Text(role)
.font(.caption)
}
.foregroundColor(.white)
}
}
위와 같이 그리드와 닮은 리스트뷰를 설정하고, toolbar의 isGridView
의 값에 따라 리스트와 그리드 뷰 중 하나로 보여주게 설정했다.