r t*_* to 8 performance xcode ios swift swiftui
我将 TabView 与 PageTabViewStyle 一起使用,每个子视图都包含一个带有大数据集的列表视图。
仅在 iOS 14.2 上,页面转换似乎非常滞后。
但是,在具有少量数据的列表视图中,页面转换不会延迟。
我猜测 TabView 包含列表的性能将与数据量无关,因为列表行显示是惰性的。
所以,我相信这是错误或默认视图样式更改。
我期待着您的帮助来解决这个问题。谢谢
@available(iOS 14.0, *)
struct ContentView: View {
@State var showHeart: Bool = false
var body: some View {
TabView{
self.contents
self.contents
}
.tabViewStyle(PageTabViewStyle())
}
var contents: some View{
List(0..<1000){_ in
Text("HELLO WORLD HELLOWORLD")
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试使用延迟加载。像这样的东西:https://www.hackingwithswift.com/quick-start/swiftui/how-to-lazy-load-views-using-lazyvstack-and-lazyhstack
正如您在视频中看到的: https: //streamable.com/7sls0w
该列表未正确优化。使用 . 创建您自己的列表LazyVStack。性能更好,过渡更顺畅。
我认为你不明白这个想法。解决问题的代码:
@State var showHeart: Bool = false
var body: some View {
TabView {
contents
contentsSecond
}
.tabViewStyle(PageTabViewStyle())
}
var contents: some View {
List(0..<10000) { _ in
Text("HELLO WORLD HELLOWORLD")
}
}
var contentsSecond: some View {
return ScrollView {
Divider()
LazyVStack {
ForEach(1...1000, id: \.self) { value in
Text("Luke, I am your father \(value)")
.padding(.all, 5)
Divider()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |