0

我試圖將背景視圖設置爲圖像,但它從不顯示包含圖像的單元格。我可以向下滾動,所以我知道那裏確實存在細胞,但沒有背景圖像,只要我滾動速度非常快,就可以確定正確的圖像,但它會很快消失。Swift3 - 不顯示包含圖像的單元格

任何想法爲什麼?

繼承人我的代碼:

let image: UIImageView = { 
    let imgview = UIImageView() 
    imgview.image = UIImage(named: "myImage") 
    imgview.contentMode = .scaleAspectFit 
    imgview.clipsToBounds = true 
    return imgview 
}() 

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell-id", for: indexPath) 
    cell.contentView.addSubview(image) 
    cell.backgroundView = image 
    return cell 
} 

回答

1

cellForItemAt你不應該調用addSubview方法。因爲cellForItemAt被稱爲很多次。

試試這個代碼:

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell-id", for: indexPath) 

    UIGraphicsBeginImageContext(cell.frame.size) 
    UIImage(named: "myImage")?.draw(in: cell.bounds) 
    if let image: UIImage = UIGraphicsGetImageFromCurrentImageContext() { 
     UIGraphicsEndImageContext() 
     cell.backgroundColor = UIColor(patternImage: image) 
    } 
    return cell 
} 
+0

非常感謝! – Jeamz

+0

此代碼也適用於我!我現在使用它在UITableView中的單元格。謝謝。 – RobertL

相關問題