2016-12-23 75 views
1

零我有像這樣限定的UICollectionViewCell出口在UICollectionViewCell

import UIKit 

class GalleryCellCollectionViewCell: UICollectionViewCell { 

    @IBOutlet weak var image: UIImageView! 

} 

Xcode的自動把這個在當我增加了出口。在我的UICollectionViewController

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

功能,然後嘗試設置圖像。我的代碼是

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! GalleryCellCollectionViewCell 
     let imagePackage = imagePackages?[indexPath.item] 
     let uiImage = imagePackage?.getUIImage() 
     cell.image.image = uiImage 
     return cell 
    } 

在我的調試器變量觀衆,我可以看到,uiImagenil。但是,cell.imagenil。爲什麼會這樣?我在storyboard中沒有正確連接它嗎?

+2

含義()',顯示此方法。 –

+0

'@IBOutlet weak var image:UIImageView!'千萬不要使用它在蘋果框架中聲明的相同變量,否則x代碼會發生衝突並根據它理解代碼。 –

+0

正如我看到你的代碼工作,我似乎是完美的,所以重新檢查你的'reuseIdentifier'拼寫,以及它是否完全分配給單元'出列'屬性。 –

回答

-1

此行似乎真的很奇怪:

cell.image.image = uiImage

爲什麼你的電池有多個鏡像實例?

編輯:

此代碼似乎罰款。我們來看看getUIImage function。我相信問題在功能本身附近。

+0

OP的出口名稱很混亂......他將其定義爲「'@IBOutlet weak var image:UIImageView!'」。它應該被命名爲更有意義的東西。 –

-1

您可以使用標籤以另一種方法訪問圖像。 從電池的界面生成器(IB)到屬性標籤(第三選項卡),並設置標記爲圖像(如5)這條線`讓的UIImage = imagePackage?.getUIImage的

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! GalleryCellCollectionViewCell 
    let imagePackage = imagePackages?[indexPath.item] 
    let uiImage = imagePackage?.getUIImage() 
    var cellImg:UIImageView = cell!.viewWithTag(5) as! UIImageView; 

    cellImg.image = uiImage 
    return cell 
} 
相關問題