我注意到当在 UICollectionView
中调用 setLayout:animated
以在两个布局之间切换时,当前可见的单元格不符合 zIndex
它的布局属性已在 layoutAttributesForItemAtIndexPath:
中设置。
例如,如果我有一个带有 UICollectionViewFlowLayout
的 UICollectionView
,请将它的 minimumLineSpacing
设置为负数,以便单元格重叠,然后将每个单元格的 zIndex
设置为高于前一个单元格的 zIndex
,然后看起来好像单元格是从下往上堆叠的。
但是,如果我将布局设置为另一个布局然后返回到原始布局,这会中断。就好像当前可见的单元格没有监听 zIndex 而是被放置在其他单元格之上。如果我将单元格滚动到屏幕外,然后再回到屏幕上,它就在正确的位置。
最佳答案
我遇到了同样的问题。切换布局将忽略单元格的 zIndex。
我已经设法通过像这样在 z 轴上应用平移来使其“看起来正确”:
attributes.transform3D = CATransform3DMakeTranslation(0, 0, indexPath.row);
但这只是一个视觉修复,如果您尝试单击该项目,您会发现 zIndex 仍然是错误的,直到通过将其滚动到屏幕外来回收它。
关于ios - UICollectionView setLayout :animated: not preserving zIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12659301/