swift常见的属性修饰器
@Environment
简介
使用@EnvironmentObject可以监听到自定义的model;
但是如果是系统的一些内置的类呢,则可以使用@Environment监听;
示例
1 | |
@Binding
简介
双向绑定,用于父子视图的双向传递。修改子视图的Binding值,会触发父视图的State改变重新渲染body。修改父视图的State的值同样也会重新通过Binding传递给子视图,触发重新渲染body。
示例
1 | |
@State
简介
通过使用 @State 修饰器我们可以关联出 View 的状态. SwiftUI 将会把使用过 @State 修饰器的属性存储到一个特殊的内存区域,并且这个区域和 View struct 是隔离的. 当 @State 装饰过的属性发生了变化,SwiftUI 会根据新的属性值重新创建视图
示例
1 | |
@Published + @ObservedObject
简介
@Published是SwiftUI最有用的包装之一,允许我们创建出能够被自动观察的对象属性,SwiftUI会自动监视这个属性,一旦发生了改变,会自动修改与该属性绑定的界面。
比如我们定义的数据结构Model,前提是 @Published 要在 ObservableObject 下使用
然后用 @ObservedObject 来引用这个对象,当然@State 不会报错,但是无法更新
示例
1 | |
swift常见的属性修饰器
https://wttch96.github.io/post/swift/swift常见的属性修饰器.html