我正在开发一个使用Kingfisher
库的应用,以从ulr加载image
并在CollectionViewCell
中显示。我正在尝试调整图像大小以适合Contentview
的{{1}}。我从库中尝试了CollectionViewCell
和ResizeProcessor
,但是结果图像似乎为ScaleFactor
。我的实现方式如下(函数在blur
中调用)
CellForRowAtIndexPath
我做错了什么吗? let url = photo.flickrImageURL("m")
let size = contentView.frame.size
print("size is \(size.debugDescription)")
let resizeProcessor = ResizingImageProcessor(referenceSize: size, mode: .aspectFit)
self.flickrPhoto.kf.setImage(with: url, options: [.backgroundDecode,.processor(resizeProcessor), .scaleFactor(UIScreen.main.scale),.cacheOriginalImage])
的质量似乎很模糊。
答案 0 :(得分:2)
您应将referenceSize
的大小设置为imageView
,而不是contentView
。由于您的contentView
的大小将大于您的imageView
使用以下代码更改代码:
let size = self.flickrPhoto.frame.size
已更新
刚刚发现ResizingImageProcessor
在像素而不是点上起作用,因此您需要将缩放比例乘以图像大小,如下所示:
let resizingProcessor = ResizingImageProcessor(referenceSize: CGSize(width: self.flickrPhoto.frame.size.width * UIScreen.main.scale, height: self.flickrPhoto.frame.size.height * UIScreen.main.scale))