使用 SwiftUI 定义视图层次结构时,是否可以hidden()在定义的主体中设置视图的值?
例如:
var body: some View {
VStack(alignment: .leading) {
Text(self.name)
.font(.headline)
.hidden()
}
}
Run Code Online (Sandbox Code Playgroud)
会隐藏 Text 对象,但我想使用布尔属性来切换可见性。
有一种方法可以使用三元运算符和视图的不透明度值来做到这一点,但我希望有一个不太聪明的解决方案。
谢谢!
sup*_*cio 18
如果您不想以opacity这种方式使用修饰符:
struct ContentView: View {
@State private var showText = true
var body: some View {
VStack(alignment: .leading) {
Text("Hello world")
.font(.headline)
.opacity(showText ? 1 : 0)
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以决定有条件地完全删除视图:
struct ContentView: View {
@State private var showText = true
var body: some View {
VStack(alignment: .leading) {
if showText {
Text("Hello world")
.font(.headline)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到这两种方式都广泛用于SwiftUI. 对于您的具体情况,我会诚实地使用opacity修饰符,但即使删除也很好。
| 归档时间: |
|
| 查看次数: |
7592 次 |
| 最近记录: |