iOS 7:选择UICollectionViewCell将在其中的UITableView中选择单元格

iOS 7:选择UICollectionViewCell将在其中的UITableView中选择单元格,ios,uitableview,ios7,uicollectionview,Ios,Uitableview,Ios7,Uicollectionview,简而言之:如何防止集合视图单元格的选择影响该集合视图单元格内的表视图单元格的选择状态 我有一个UICollectionView,当选中时单元格会全屏显示。这些单元格包含将显示使用信息的UITableView 我遇到的问题是,表格视图中的单元格显示得好像它们被选中一样。我移动了一些东西,以便始终全屏显示单元格,这使我能够确认:选择集合视图单元格时,其中的表格视图单元格也会以所选样式显示 请注意,我说它们是以选定的样式显示的,而不是选定的样式。就表格视图而言,它们未被选中 [tableView in

简而言之:如何防止集合视图单元格的选择影响该集合视图单元格内的表视图单元格的选择状态

我有一个UICollectionView,当选中时单元格会全屏显示。这些单元格包含将显示使用信息的UITableView

我遇到的问题是,表格视图中的单元格显示得好像它们被选中一样。我移动了一些东西,以便始终全屏显示单元格,这使我能够确认:选择集合视图单元格时,其中的表格视图单元格也会以所选样式显示

请注意,我说它们是以选定的样式显示的,而不是选定的样式。就表格视图而言,它们未被选中

[tableView indexPathsForSelectedRows]不返回索引路径<代码>表格视图:willselectRowatinedexpath:
-我可以从中返回nil,但从未调用它。因此,可以肯定地说,表视图并不认为自己的单元格被选中

但是,我可以在Reveal中确认表视图单元格包含所选的背景视图(请参见下面的最后一个屏幕截图)。这仅适用于选中“集合视图”单元格时可见的表视图单元格:对于列表中较低的单元格,这种情况不会发生,因为这些单元格最初会离开屏幕

我可以使用
cell.selectionStyle=UITableViewCellSelectionStyleNone隐藏问题最终,这可能是我的解决方案:无论如何,表视图单元格都是不可选择的,因此在我的情况下,像这样对问题进行绘制应该是可行的

但是,这并不能回答更大的问题:这里到底发生了什么

屏幕截图

普通集合视图单元格(整个集合是一个单元格):

选定的集合视图单元格,表格视图上的灰色选定样式位于:

显示,显示选定的背景视图。在这种情况下,选择集合视图单元格时,包含“删除”按钮的表格单元格不可见,因此它没有像上面的单元格那样获得选择样式:


显然,这是iOS 7中的预期行为
setHighlighted:
在所有支持它的子视图上被调用。

我用这种方式重写了
UITableViewCell
的方法

func setHighlighted(_ highlighted: Bool, animated: Bool)
{
   //Leave Empty
}
苹果的行为可能是正确的,因为通过这种方式,您可以跳过对所有子对象的迭代并手动设置属性,但如果我不想使用
UICollectionViewDelegate
方法,为什么我不能选择它呢

func collectionView(_ collectionView: UICollectionView, shouldHighlightItemAt indexPath: IndexPath) -> Bool

同一个问题可能会重复,但我发现所选择的解决方案本身存在缺陷。我打开了两台雷达。这个问题带有递归突出显示:另一个问题的答案带有shouldHighlight:阻止单元格选择:这不是答案。如果您正在回答问题,请仅以这种方式发布。否则,问一个新问题。
//在
setHighlighted中留空
实际上是我的答案。所以竖起大拇指即使这可能是预期的行为,这仍然不是一个解决方案。所以这不是一个确切的答案。更多的评论。