SwiftUI的_ConditionalContent是一种泛型类型,用于在视图中指示一个条件内容。
它的定义如下:
public enum _ConditionalContent<TrueContent: View, FalseContent: View> {
case trueContent(TrueContent)
case falseContent(FalseContent)
}
可以看到,它有两个泛型参数:TrueContent
和FalseContent
。
根据条件,它可以包含两种类型的内容:TrueContent和FalseContent。
例如,我们可以使用它来定义一个视图,根据某些条件条件选择显示其中一个View或另一个View:
struct ContentView: View {
@State var showRedView = true
var body: some View {
VStack {
Toggle(isOn: $showRedView) {
Text("Toggle")
}
_ConditionalContent(
condition: showRedView,
trueContent: {
Color.red
},
falseContent: {
Color.blue
}
)
}
}
}
上述示例中,我们首先定义了一个布尔变量showRedView
,以此判断应该显示红色视图还是蓝色视图。
然后使用 _ConditionalContent
来定义一个条件性的视图,当 showRedView
为 true
显示红色视图,否则显示蓝色视图。