多个tableview单元格内的Collectionview,如何处理选择?

Posted

技术标签:

【中文标题】多个tableview单元格内的Collectionview,如何处理选择?【英文标题】:Collectionview inside multiple tableview cells, how to handle selection? 【发布时间】:2019-03-29 14:59:11 【问题描述】:

我有一个表格视图,包含 10 个单元格。每个表格视图单元格内部都有一个集合视图,

我通过覆盖isSelected这段代码来处理每个collectionView的选择样式变化

override var isSelected: Bool 
    didSet
        if(isSelected)
            backgroundColor = .black
         else 
            backgroundColor = .red
        
    

此时它可以工作了。但是当我滚动表格视图时,我看到选择样式(.red)应用于其他单元格中的不同集合视图(当然是因为可重复使用的单元格)

我想将选择粘到其中包含选择的集合视图上,并避免将选择应用于其他集合视图

首先你会看到collectionview里面有一个选定的项目

当我滚动时,我发现另一个出队的collectionview,具有相同的选择!,选择只在索引路径第1行而不是第5行

【问题讨论】:

嘿,为什么要在 tableview 中设置 collectionview。你可以自己试试collectionview。在集合视图中使用部分。并设置启用多项选择。更好地管理您的问题。 @Kathiresan.M 我在 tableview 中有一个水平集合,很像 appstore 的主页,其中你有一部分游戏,例如,里面有一个包含水平游戏列表的集合视图,当我滚动时会出现问题数据混乱的tableview AppStore 是由 collectionview 自行开发的 使用collectionview或tableview作为主要的垂直滚动区域不是问题,无论哪种方式,问题在于重用tableview的单元格或colletionview的内部的collectionview 我的建议是如果你使用collectionview对你更有帮助 【参考方案1】:

我所做的是在模型数据中添加了一个名为 selectedIndex 的变量。

检查 cellForRowAt 中的条件并在 didSelect 方法中修改 selectedIndex 变量

【讨论】:

以上是关于多个tableview单元格内的Collectionview,如何处理选择?的主要内容,如果未能解决你的问题,请参考以下文章

完成在单元格内编辑 textview 后向 tableview 添加另一个单元格

在单元格内编辑textview时,将另一个单元格添加到tableview

TableView单元格内的TableView,自动调整单元格高度

快速单击其中一个 tableview 单元格内的按钮后重新加载 tableview

tableview单元格内的ios文本字段

发生单元格内容交互时更新 TableView 单元格高度