我们有一个适用于 macOS 的简单 SwiftUI 应用程序。没什么特别的,只是 LazyVGrid 和 ScrollView 中的数字。我们在 MacBook Pro M2 Max 16' 全屏上运行它。我可以达到大约 50FPS。滚动不流畅。如何在 120Hz Pro 运动显示屏上获得 120FPS?
这是代码:
struct GridTest: View {
@State var data = (1...30000).map { "\($0)" }
//doesn't matter if this is adaptive or fixed..it is still slow
//there is no way to hit 120Hz on mac?
let columns = [GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90)),
GridItem(.fixed(90))
]
var body: some View {
ScrollView {
LazyVGrid(columns: columns) {
ForEach(data, id: \.self) {item in
Text(item).frame(width: 100, height: 30)
}
}.frame(width: 1700)
}
}
}//GridTest
使用 Quartz Debug 测量的 FPS。可以从 Apple 网站的更多部分下载,Additional_Tools_for_Xcode_15。
听我说完!为此使用颤动。 flutter 在 UI 响应能力方面更好,因为它是与原生 iOS 应用程序完全不同的 UI 框架。
注意:如果您更喜欢本机代码,则只能将 flutter 用于此网格。