【发布时间】:2022-06-22 18:39:26
【问题描述】:
我想为不同的血型展示不同的观点。
let categories = ["A+", "B+", "AB+", "O+", "A-", "B-", "AB-", "O-"]
let onSelectedCategory: (String) -> ()
@State private var selectedCategory: String = ""
var body: some View {
ScrollView(.horizontal) {
HStack {
ForEach(categories, id: \.self) { category in
Button(action: {
selectedCategory = category
onSelectedCategory(category)
//Here I want to go different view for each blood group,
//like APositiveView(), BPositiveView...
}, label: {
Text(category)
}).padding(10)
.foregroundColor(selectedCategory == category ? Color.white: Color(#colorLiteral(red: 0.204610765, green: 0.2861392498, blue: 0.3685011268, alpha: 1)))
.background(selectedCategory == category ? Color(#colorLiteral(red: 0.4982050061, green: 0.5490344763, blue: 0.5528618097, alpha: 1)): Color(#colorLiteral(red: 0.9254772663, green: 0.9412199855, blue: 0.9449794888, alpha: 1)))
.clipShape(RoundedRectangle(cornerRadius: 10.0, style: /*@START_MENU_TOKEN@*/.continuous/*@END_MENU_TOKEN@*/))
}
}
}
//.ignoresSafeArea()
}
选择任何血型后,它应该为每个不同的血型显示不同的视图,例如 APositiveView()、BPositiveView()
【问题讨论】:
-
这不是问题。你在问什么?尝试包含带问号的内容
-
您没有任何东西可以控制您的子视图或显示哪个视图。您应该使用
NavigationView或带有 @State 变量的 ZStack 来管理要显示的视图 -
请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
标签: swift swiftui swiftui-foreach