0

我在带有许多图像的滚动视图中有一个 LazyVStack。scrollView 中的图像尺寸很小,大约 300x300 点。这些图像是从存储在 CoreData 中的数据中提取的。平均图像大小为 1024x1024 和 500KB。

目前,我只是使用类似于以下内容的方式加载图像而没有任何缓存或调整大小:

var items: [Item]

var body: some View {
    GeometryReader { geometry in
        ScrollViewReader { scrollView in
            ScrollView(.vertical) {
                LazyVStack {
                    ForEach(items, id: \.id) { item in
                        Image(uiImage: UIImage(data: item.imageData!) ?? UIImage())
                            .resizable()
                            .aspectRatio(contentMode: .fit)
                            .frame(width: 300, height: 300)
                    }
                }
            }
        }
    }
}

我想知道这种情况的最佳实践是什么。我是否通过调整图像大小来不必要地减慢滚动速度?原始图像大小为 1024x1024 和大约 500kb。

我曾考虑在 CoreData 中为缩略图创建另一个字段,并在存储时调整大小,但这将使用额外的存储空间,如果没有必要,我想避免这种情况。

4

0 回答 0