UICollectionView
与此处描述的相同行为导致了这个问题。即使我决定发布我自己的,因为我做了进一步的调查,我不想在评论或编辑上述问题时发表。
怎么了?:
当大单元格显示在 aUICollectionView
中时UICollectionViewFlowLayout
,将集合视图滚动到某个偏移量后,单元格将消失。
当进一步滚动直到另一个单元格进入可见区域时,消失/隐藏的单元格再次变得可见。
我使用垂直滚动集合视图和全角单元格进行了测试,但我很确定,类似的水平滚动设置也会发生这种情况。
什么是大细胞?:
所描述的行为发生在高于显示高度两倍的单元格(960.f + 1.f
在 3,5 英寸显示器上,1136.f + 1.f
在 4 英寸上)。
究竟会发生什么?:
当集合视图的滚动偏移量超过cell.frame.origin.y + displayHeightOfHardware
单元格隐藏属性设置为YES
并被调用(例如,当到达3.5 英寸 iPhone-collectionView:didEndDisplayingCell:forItemAtIndexPath:
时,第一个单元格变为隐藏)。scrollingOffset.y
481.f
如上所述,当滚动到下一个单元格进入视图时,隐藏单元格会再次显示(即隐藏属性更改为NO
),此外,当滚动足够远时,单元格将永远不会再次消失,而它不应该再次消失,无论你在哪里滚动到。
当使用大于 Triple-display-height ( 1441.f/1705.f
) 的单元格时,这种情况会发生变化。这些显示相同的行为,但无论它们向上和向下滚动多远,它都保持不变。
还有什么?:
这种情况不能通过覆盖-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
返回来解决YES
。
单元格在隐藏后无法通过以NO
编程方式设置隐藏属性来强制显示(didEndDisplayingCell
例如)
那么,问题是什么?:
我很确定,这是一个错误,UICollectionView/Controller/Cell/Layout
我将在 Apple 提交 TSI。但与此同时:有没有人对快速破解解决方案有任何想法?