SwiftUI:基于属性值设置视图可见性吗?

时间:2019-10-07 20:22:32

标签: swiftui

使用SwiftUI定义视图层次结构时,是否可以在定义主体中设置视图的hidden()值?

例如:

var body: some View {
     VStack(alignment: .leading) {
          Text(self.name)
          .font(.headline)
          .hidden()
     }
}

将隐藏Text对象,但是我想使用一个布尔属性来切换可见性。

有一种方法可以使用三元运算符和视图的不透明度值来实现,但是我希望有一个不太聪明的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您不想以这种方式使用 void ft_free_tab2(char **env) { char **ptr; if (!env) return ; ptr = env; while (*ptr) { free(*ptr); ptr++; } free(env); } 修饰符:

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)
         }
    }
}

请考虑在struct ContentView: View { @State private var showText = true var body: some View { VStack(alignment: .leading) { if showText { Text("Hello world") .font(.headline) } } } } 中广泛使用两种方法。对于您的特定情况,我会诚实地使用SwiftUI修饰符,但即使删除也可以。