2017-09-26 137 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。

相关问题