2017-09-17 94 views
-1

我有一個名爲photoCollection的ViewCollection。每個cel都是一個具有UIImageView的自定義單元。如何訪問自定義viewcollection單元

如何訪問photoCollection的第1項,第2項?

let cell = photoCollection.cellForItem(at: IndexPath(item: 1, section: 1)) as! photoCollectionViewCell 

回零

我不知道爲什麼。 謝謝。

+1

是細胞可見當你打電話這個功能? –

+2

如果單元格不可見,則返回nil。如果你想檢索它的圖像,文本或類似的東西,不要這樣做,請問數據源(可能是填充你的單元格的數組)。 – Larme

+0

就像@Larme所說的,CollectionView是一個用於呈現數據集合的UI元素。意味着你有數據,並且你有UI。所以無論你的數據是什麼,如果它是一個數組,你可以使用它來獲得你需要的任何邏輯。單元格是愚蠢的,你應該觸發它的委託函數來實現UI目標。 – Eyzuky

回答

0

和其他人一樣,功能cellForItem(at:)將返回nil如果該單元格當時不可見。

如果您有需要訪問任何隨機的時間特定的細胞,那麼你可以嘗試像下面:

lazy var yourSpecificCell: PhotoCollectionViewCell = { 
    let cell = self.collectionView!.dequeueReusableCell(withRuseIdentifier: "SOMETHING", for: IndexPath(item: 1, section: 1)) as! photoCollectionViewCell 
    return cell 
}() 

,並在您UICollectionViewDataSource

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    if indexPath.section == 1 && indexPath.item == 1 { return self.yourSpecificCell } 
    // else, return something else... 
} 
相關問題