mrb*_*ill 6 swiftui swiftui-list
我注意到列表视图的 OnAppear 事件有一些奇怪的行为。我认为 OnAppear 闭包会在屏幕上出现视图时运行,但在加载列表时它似乎会立即运行。
例如下面的代码:
@State var rows: [String] = Array(repeating: "Item", count: 20)
var body: some View {
List(0..<rows.count, id: \.self) { index in
Text(verbatim: self.rows[index])
.onAppear {
print("BOOOOM")
}
.frame(height:400)
}
}
Run Code Online (Sandbox Code Playgroud)
...我希望打印命令在加载时运行几次,然后在向下滚动时继续打印。相反,它一次打印 20 次,然后在我开始向下滚动时再次打印。
有什么想法吗?
我认为它的表现符合预期。
对我来说,它在带有 .txt 文件的模拟器上打印了 15 次,iPhone 7在带有 .txt 文件的模拟器上打印了 20 次iPhone 11。
我对print("BOOOOM \(index)")
列表在后台可能遵循性能和资源的平衡。
加载太少,如果滚动太快,用户会“卡住”,而加载太多会减慢滚动动画。
| 归档时间: |
|
| 查看次数: |
1495 次 |
| 最近记录: |