在两个独立的控制器中,我看到一种奇怪的行为,其中某些 UICollectionViewCells的z-index比粘性的SectionHeader或SectionFooter更高。当我滚动UICollectionView并且一些单元格通过页眉/页脚并且一些单元格传递(预期)时,它变得明显。
为了让事情更加混乱,它只是一些细胞,而不是所有细胞。它似乎只发生在reloadSections调用之后。我很难过。
我确信这在iOS9中并没有发生。
在下图中,您可以看到两个UICollectionViewCells(James / Chrys),它们之间是SectionFooter。因此,一个单元格在某种程度上是z-ordered上面,另一个单元格在下面。
更新:在检查了UICollectionView的视图层次结构后,我注意到第三次调用reloadSections后,一些UICollectionViewCells开始被放置在视图层次结构中的SectionHeader上方,而SectionHeader现在有了alpha = 0和hidden = YES,我从未设置过自己。
<MyProject.SectionHeaderCell: 0x7fd831420c50; baseClass = UICollectionReusableView; frame = (0 552; 375 36); text = 'HEADER TITLE TEXT'; alpha = 0; hidden = YES; layer = <CALayer: 0x60000043f7a0>>
更新我非常怀疑iOS10打破了reloadSections调用。我现在正在使用这个糟糕的解决方法来解决问题:
for view in _collectionView!.subviews {
if view is SectionHeaderCell {
_collectionView?.addSubview(view)
}
}