如何使用 SDWebImage 调整下载图像的大小?

how to resize dowloaded Image with SDWebImage?

我正在使用 SDWebImage 将图像异步下载到 UICollectionView 单元格中,但下载的图像不适合单元格,单元格只显示图像的上角。

这是我的代码:

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! ImageCell

    cell.imageView.setShowActivityIndicator(true)
    cell.imageView.setIndicatorStyle(.gray)
    cell.imageView.sd_setImage(with: URL(string: imageURL[indexPath.row]))

    return cell
}

这是我的 cellClass :

private class ImageCell: UICollectionViewCell {

override init(frame: CGRect) {
    super.init(frame: frame)
    self.setupViews()
}
required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

let imageView: UIImageView = {
    let imageView = UIImageView()
    imageView.backgroundColor = .white
    imageView.layer.masksToBounds = true
    return imageView
}()

func setupViews() {
    backgroundColor = .white
    addSubview(imageView)
    imageView.contentMode = .scaleAspectFit
    imageView.translatesAutoresizingMaskIntoConstraints = false
    imageView.frame = CGRect(x: 0, y: 0, width: frame.width , height: frame.width )

}
}

我按照这个 link Resize UICollectionView cells after image inside has been downloaded 来解决它,但没有任何改变。

有什么想法吗?

如果您不想使用自动约束,则应删除此行

imageView.translatesAutoresizingMaskIntoConstraints = false

当您以编程方式使用自动约束时,您应该使用它