一、简介
开发中,我们需要把一个View的属性,传递到一个子View中;
Swift中,值传递的形式是值传递
,也就是说,传个子View的是值的拷贝;子视图对这个值进行了修改后,不会影响父视图;
使用@Binding修饰后,属性就变成了一个引用类型
,这样子视图对值进行了修改后,父视图中的值也会发生变化
二、demo
// 父视图
struct BindViewTest: View {
@State var count = 0
var body: some View {
VStack(alignment: .center) {
Text("\(count)").padding()
BindSubView(count: $count).padding()
}
.padding()
}
}
// 子视图
struct BindSubView: View {
@Binding var count: Int
var body: some View {
Button(action: {
count += 1
}) {
Text("增加")
}
}
}
颜色
网友评论