问题描述
当我滚动 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
的行为很懒惰