滚动条不正确地出现在UICollectionView部分标题下
我找到了解决方法。此问题是错误地设置了标题视图的zPosition
集合视图。为了解决这个问题,我们将始终确保zPosition
是我们期望的价值。
创建子类CALayer
其防止zPosition
被任何其他大于零
class CustomLayer: CALayer {
override var zPosition: CGFloat {
get { return 0 }
set {}
}
}
然后层类的集合视图报头的设置到这个新的子类。
class MyHeaderView: UICollectionReusableView {
// your other custom code here
override class var layerClass: AnyClass {
get { return CustomLayer.self }
}
}
这是一个iOS 11的错误,因为这个问题不会发生在iOS 10中。希望这个工作可以很好地运行,直到bug被修复。
感谢分享,这似乎是比我所做的更好的解决方案。我基本上只是将headerCell设置为常规单元格。但你的看起来更清洁。 – Soja
伟大的修复!感谢分享:) –
相同的概念,但这里是一个更简单的解决方法,不需要您的UICollectionReusableView
实例使用子类。
顺应UICollectionViewDelegate
(如果你不这样做的话),并实现像这样willDisplaySupplementaryView协议方法:
func collectionView(_ collectionView: UICollectionView, willDisplaySupplementaryView view: UICollectionReusableView, forElementKind elementKind: String, at indexPath: IndexPath) { view.layer.zPosition = 0.0 }
测试iOS中11.2.1。
这是一个iOS 11的错误。滚动条在iOS 10中正确定位。 – nathan