使用didSelectItemAtIndexPath时是否可以访问不等于索引路径的所有单元格?

时间:2017-06-29 23:53:38

标签: ios swift uitableview uicollectionview uicollectionviewcell

我是Swift的新手,也是编码新手,所以如果我的问题含糊不清,或者答案很明显,请原谅我。

我有一个collectionView和里面的一些单元格。当我选择一个单元格时,我想要更改除选定单元格之外的每个单元格的颜色。我使用委托方法:didSelectItemAtIndexPath。我怎样才能访问indexpath不等于所选单元格的索引路径的单元格?

2 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是,您可以将indexPath存储在类中的变量中,并在存储此indexPath之后在didSelectItemAtIndexPath中重新加载集合视图。在您的cellForItemAtIndexPath中,检查存储的indexPath并更改单元格的颜色。

答案 1 :(得分:1)

您可以使用“集合视图”的visibleCells属性来获取所有可见单元格。该属性返回一个可以迭代的数组,并使用indexPath(for:)进行测试以查看它是否是您不想着色的数组。

然后,当您从数据源方法提供新单元格或使用collectionView(_:willDisplay:forItemAt:)时,您需要确保在用户滚动时更新其他单元格,方法是设置正确的颜色。