4

我正在开发一个应用程序,使用 Kingfisher 库从 ulr 加载图像并显示在CollectionViewCell. 我正在尝试调整图像大小以适应Contentview.CollectionViewCell

我已经从图书馆尝试过ResizeProcessor,但结果图像似乎。我的实现如下(函数调用)ScaleFactorblurCellForRowAtIndexPath

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])

有什么我做错了吗?质量images看起来很模糊。

4

1 回答 1

5

您应该设置referenceSize为 size ofimageView而不是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))
于 2018-10-19T04:32:53.300 回答