当我将本地数组中的图像设置到每个 Collection View 单元格中时,滚动很滞后。这是因为显示单元格时正在使用全尺寸的 UIImage。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "PhotoCell", for: indexPath) as! PhotoCell
let image = images[indexPath.row]
cell.imageView.image = image
return cell
}
为了尝试解决这个问题,我编写了一种在运行时将图像大小调整为适当大小的方法。
private func resizeImages(images: [UIImage], size: CGSize) -> [UIImage?] {//...}
但是在 viewDidLoad
中调整数组中所有图像的大小需要花费相当多的时间。
这是一个简单的相册应用程序,因此我希望避免使用任何事件或加载指示器。 鉴于可以访问从 Core Data 获取的图像数据,如何在 Collection View 中设置图像,使其在滚动时不会滞后?
最佳答案
您应该在保存到 CoreData
时执行此任务,而不是在运行时调整图像大小。您应该存储两张图像,而不是保存一张图像。一张为全尺寸(高分辨率),另一张为缩略图(调整大小)。仅在 CollectionViewCell
中加载缩略图以避免滚动滞后。
关于ios - 将调整大小的图像从 Core Data 插入 UICollectionView 的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562168/