3.2_如何创建 Toggle

SwiftUI 中的 toggle 允许用户在 truefalse 的状态之间进行切换,就像 UIKit 中的 UISwitch 一样。

例如:

我们可以创建一个 toggle ,然后根据是否启用 toggle 来决定显示或者不显示消息。但是我们不希望手动跟踪 toggle 的状态 – 我们希望 SwiftUI 为我们做这件事。

与以往不同,在这里,我们应该定义一个 @State Boolean 属性,用于存储 toggle 的当前值。然后我们可以根据需要使用它来显示或隐藏其它视图。

例如:

struct ContentView: View {
    
    @State private var showGreeting: Bool = true
    
    var body: some View {
        VStack {
            Toggle(isOn: $showGreeting) {
                Text("Show welcome message")
            }.padding()
            
            if showGreeting {
                Text("Hello world!")
            }
        }
    }
}

效果预览: 3.2_how_to_create_a_toggle 这段代码,只有当 showGreetingtrue 时才会返回文本视图,这意味着当 showGreetingfalse 时,VStack 的大小会减小 - 它的堆栈中没有第二个视图。

注意: 使用 @State 时,Apple建议我们使用 private 访问控制修饰符标记属性,以明确表明此状态属于本地视图,而不在其他地方使用。

Avatar
M X
Mobile, Front-End Developer

My research interests include swift developing, python developing and go developing.

Related

Next
Previous
comments powered by Disqus