显示选定单元格的 UICollectionView

UICollectionView showing selected cells

我有一个带有表单字段的 tableview,并且有一行使用 segue 调用 UICollectionView,一切正常,除了我无法保留 select回到tableview.

后编辑单元格(当单元格被select编辑时我显示的视觉效果)

我的意思是,我 select 编辑了我的 UICollectionView 单元格,之后我返回表格,但如果我需要再次回到我的 UICollectionView 单元格,去 select o select 在提交数据之前还有更多的单元格,一旦 UICollectionView 出现我之前的 selection 就在那里(我打印数组,我看到了值)但是我不能看看我对 selected 细胞所做的效果。

如果我再次回到 select o deselect 细胞,我如何才能保持 selected 细胞的效果?

需要意识到的一件事是,这不会自行发生。当您返回到 table 视图和表单字段时,UICollectionView 已完全销毁。下次显示 collection 视图时,它是一个 新的和不同的 collection 视图。

因此,如果您想了解 collection 视图中的选择内容,您将不得不 自己 有意地维护它,当您知道 collection 视图正在被销毁时将其存储在某个地方。

这样,下次您显示 collection 视图时,即使那将是一个全新的和不同的 collection 视图,您也可以将选择内容的知识传递给那个collection 在创建和展示时查看。用户会有"returning"的错觉对collection的看法,同样的状态,但实际上将保存并恢复其状态。

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

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

我相信你一定已经采用了一组选定索引的索引路径来显示单元格中的视觉变化。

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