让我们考虑一下100个帖子的列表。根据苹果公司的说法,如果我把它们布置在LazyVStack里
堆栈视图在需要在屏幕上呈现项目之前不会创建项目。
如果我将LazyVStack嵌入到VStack中会怎么样?它是否仍然“视需要”加载视图?
发布于 2022-11-17 15:08:14
struct MyView: View {
init() {
print("init...")
}
var body: some View {
Text("test")
}
}
struct ContentView: View {
var body: some View {
ScrollView {
VStack {
LazyVStack {
ForEach.init(0..<100) { int in
MyView()
}
}
}
}
}
}运行上面的代码时,我们可以看到更多的MyView是init的(通过查看控制台中的print语句),所以看起来VStack中的LazyVStack确实懒洋洋地创建它的内容。在删除VStack时,我们也可以看到同样的情况。
https://stackoverflow.com/questions/74475082
复制相似问题