是否可以列出自定义View
的孩子?例如,如果我有一个Group
这样的结构,是否可以列出所有子View
?这是一个示例:
ParentView {
Child1()
Child2()
Child3()
}
有没有可以在ParentView
上调用的方法,该方法将返回包含Child1
,Child2
和Child3
的数组?
答案 0 :(得分:0)
SwiftUI带来了UI工作方式的整个范例转变。
创建类似...的视图时
ParentView {
Child1()
Child2()
}
您实际上并不是在创建视图。同样,应该没有理由检查视图的状态。
使用SwiftUI,视图结构是数据的功能。
也就是说,当数据更改时,视图层次结构将更新以反映这些更改。
这也意味着数据流是一种方式。从您的数据...到视图。您不会从视图中获取数据。
因此,您不应该检查这样的视图。您应该检查创建视图的数据,以这种方式找出有关数据。
更新
同样,如果要使用父视图中的数据填充子视图,则应使用@State
对象来保存此数据,然后更新数据以重新加载视图。
像这样...
struct MyUpdatingView: View {
@State private var items: [Int] = []
var body: some View {
VStack {
Button(action: { updateItems() }) {
Text("New item")
}
List(items) { item in
Text("Item: \(item)")
}
}
}
func updateItems() {
items.append(items.count)
}
}
这将创建一个视图,该视图更新其@State
数据,然后依次使用新数据重新加载该视图。