SwiftUI LazyVGrid 滞后于图像

问题描述

当我滚动 LazyVGrid 时,应用程序滞后很多。

 LazyVGrid(
   columns: [
       GridItem(.adaptive(minimum: horizontalSizeClass == .compact ? 160:320,maximum: 320),spacing: 16,alignment: .top)
   ],spacing: 16
  ){
     ForEach(viewmodel.articles){ article in
         vstack{
           ArticleCardView(article: article,animation: animation,show: $show)
               .equatable()

文章卡片视图

vstack{
        if !show {
            HStack{
                Text(String(format: "%.2f €",article.rate1))
                    .fontWeight(.heavy)
                    .padding(.vertical,5)
            }
            
            Image(uiImage: readImage(name: "\(article.id)00"))
                .resizable()
                .scaledToFit()

我将此视图设为 Equtable,但仍然滞后。滚动不流畅。

任何优化滚动的想法。

解决方法

要检查的一件事是 .adaptive GridItem 的使用。对于实验,请尝试 .flexible - 看看它是否更快。

我没有滚动延迟,但注意到 SwiftUI 在使用 .adaptive 时为我的所有记录创建了磁贴,但对 .fixed.flexible 的行为很懒惰