我正在制作UICollectionView
一个UICollectionViewCells
包含UITableView
.
这很好用,一切都很好,直到我UICollectionViewCell
点击UITableView
. 这会导致对表中的setHighlighted
所有对象调用该方法UITableViewCells
。
下面是一个粗略的草图UICollectionViewCell
。唯一的UITableView
跨度从“单元一”到“单元三”。点击此表之外但在表内的任何位置UICollectionViewCell
都会突出显示单元格。
-------------------------
| Title goes here |
| |
-------------------------
| |
| Cell one |
-------------------------
| |
| Cell two |
-------------------------
| |
| Cell three |
-------------------------
| Button outside table |
|-----------------------|
调用堆栈看起来像这样。
[MyTableViewCell setHighlighted:]
[UICellHighlightingSupport highlightView:]
UIApplicationMain
main
似乎UICollectionViewCell
向所有单元格转发了一个突出显示命令。
我通过重载子类setHighlighted
中的方法UITableViewCell
而不调用超级实现来解决这个问题。不过,这似乎有点 hacky,我想知道是否可以以某种方式避免这种行为。
编辑:
我认为这种行为来自于UICollectionCellView
对其所有子项调用 setHighlighted 时。据我了解,这在大多数其他情况下很有用。