ScrollView 中的 LazyVGrid 在 macOS Sonoma 上的性能

问题描述 投票:0回答:1

我们有一个适用于 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。

macos performance swiftui
1个回答
0
投票

听我说完!为此使用颤动。 flutter 在 UI 响应能力方面更好,因为它是与原生 iOS 应用程序完全不同的 UI 框架。

注意:如果您更喜欢本机代码,则只能将 flutter 用于此网格。

© www.soinside.com 2019 - 2024. All rights reserved.