0

我使用SDWebImage將圖像異步下載到UICollectionView單元中,但下載的圖像不適合單元格,單元格僅顯示圖像的上角。如何使用SDWebImage調整dowloaded圖像的大小?

這是我的代碼:

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) 

} 
} 

我曾跟隨這個鏈接Resize UICollectionView cells after image inside has been downloaded解決這個問題,但沒有任何變化。

那麼有什麼想法?

+0

喜@Mohammad沒有公認的答案爲你工作你應該使用這個? –

+0

@nikdange_me絕對有效。 –

回答

1

如果你不想使用自動約束,你應該刪除此行

imageView.translatesAutoresizingMaskIntoConstraints = false 

當您使用自動約束編程

+0

jazak allah kheer,(謝謝兄弟),請你解釋一下。 –

+1

查看這些鏈接[鏈接](https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/),[鏈接](https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2)我覺得足以趕上點 – abdullahselek

+0

我很欣賞它。 –