2017-09-26 129 views
1

我需要訪問特定的細胞,並動態地改變didSelectAt其內容indexPath上didSelectItemAt iOS的集合視圖更改單元格內容indexPath

func collectionView(_ collectionView: UICollectionView, 
    didSelectItemAt indexPath: IndexPath) { 
     if collectionView == self.trendHeaderView{ 
      print(indexPath.row) 
      // Needs to access cell and change the 
      // content of cell i.e label text inside cell ?? 
    } 
} 

回答

0

我需要訪問特定的細胞

不,你不知道。你應該從來沒有直接插入一個單元格的內容。您需要訪問收集視圖的數據源使用的數據(「模型」)。你可以很容易地做到這一點,因爲你有indexPath。更改數據,然後重新加載收集視圖,以便它獲取更改並顯示它們。

+0

考慮一個案例我有一個單元格和標籤內的視圖,我必須改變嵌套的視圖背景,那我該怎麼做? – shubh14896

+0

正如我在我的回答中所說的那樣。提供有關「嵌套視圖背景」應該是_data_(模型)的一部分的信息。換句話說,將所有需要的信息編碼到模型中,然後讓你的'cellForItemAt:'根據這個信息來處理配置。這就是它意味着擁有一個數據源。沒有其他方法可以工作,不僅僅是因爲細胞在不同的項目插槽中被重複使用。 – matt

0

您不能直接在didSelectItemAt中更改單元格的內容。 正如你所看到的,在UICollectionView中,通過調用dequeReusableCell來重用單元。

所以我認爲,爲此做模型是很好的。 並更改didSelectItemAt中的模型內容。 請調用reloadData重繪collectionview。

相關問題