SwiftUI

SwiftUI:属性包装器@State使用示例

2024-09-13  本文已影响0人  喔牛慢慢爬

@State 用于在视图内部管理局部状态。当状态值发生变化时,视图会自动重新渲染。通常用于在一个视图中持有简单的、短期的状态。它特别适合存储值类型数据,如字符串、整数、枚举或结构体实例。

作用:@State 用于在视图中声明可变的状态属性,并自动更新视图。当使用 @State 标记属性时,在 SwiftUI 内部会被自动转换为一对 setter 和 getter,对这个属性进行赋值的操作将会触发 View 的刷新,它的 body 会被再次调用,底层渲染引擎会找出界面上被改变的部分,根据新的属性值计算出新的 View,并进行刷新。

应用场景

注意事项

@State var name: String
init(text: String) {
    // 给下划线版本赋值,需要用 State 类型本身进行包装
    _name = State(wrappedValue: text)
}

示例

在下面的示例中,我们使用 @State 来声明一个可变的计数属性,点击按钮时,计数会增加并更新视图

struct MyView: View {
    @State private var count: Int = 0
    
    var body: some View {
        VStack {
            Text("Count: \(count)")
            Button("Increment") {
                count += 1
            }
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读