UICollectionView显示选定的单元格

时间:2015-11-03 03:34:47

标签: ios arrays swift uicollectionview uicollectionviewcell

我有一个带有表单字段的tableview,并且有一行使用segue来调用UICollectionView,除了我无法保留所选单元格(视觉效果)之外,所有内容都有效返回tableview后,我在选择单元格时显示的效果。

我的意思是,我选择了我的UICollectionView单元格,之后我又返回到表单,但如果我需要再次访问我的UICollectionView单元格,请取消选择o在提交数据之前选择更多单元格,一旦UICollectionView出现我之前的选择就在那里(我打印数组,我看到了值),但我看不到我对选定单元格所做的效果。

如果我再次选择取消选择单元格,我如何保持所选单元格的效果?

2 个答案:

答案 0 :(得分:2)

要意识到的一点是,这本身不会发生。当您回到表视图和表单字段时,UICollectionView 被完全销毁。下次显示集合视图时,它是新的和不同的集合视图。

因此,如果您想要了解选择集合视图中的选择,那么您将不得不自己维护 ,故意将其存储在您知道集合的地方视野正在被摧毁。

这样,下次显示集合视图时,即使这将是一个全新的不同集合视图,您也可以在创建和显示时将所选内容的知识传递给该集合视图。用户将幻觉“返回”到处于同一状态的集合视图,但实际上将保存并恢复其状态。

然后,只需在集合视图的项目显示中反映所选状态即可。为此,您需要配置模型,以便在调用cellForItemAtIndexPath:时,如果应该选择该项,则每个单元格都会被选中。

答案 1 :(得分:1)

每次使用segue调用UICollectionView时,都会创建一个新的UICollectionView实例,因此所选单元格的状态不会被恢复。

我相信你必须采用一系列选定索引的索引路径来显示单元格中的视觉变化。

将tableView类作为UICollectionView的委托。使用其委托方法将选定的索引数组返回到tableView类。在推送到UICollectionView之前,将相同的索引路径数组发送回UICollectionView。希望它有所帮助..快乐编码.. :)