滚动条不正确地出现在UICollectionView部分标题下

问题描述:

由于某种原因,我的滚动条总是出现在集合视图部分标题下。任何帮助是极大的赞赏!滚动条不正确地出现在UICollectionView部分标题下

enter image description here

+1

这是一个iOS 11的错误。滚动条在iOS 10中正确定位。 – nathan

我找到了解决方法。此问题是错误地设置了标题视图的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被修复。

+1

感谢分享,这似乎是比我所做的更好的解决方案。我基本上只是将headerCell设置为常规单元格。但你的看起来更清洁。 – Soja

+1

伟大的修复!感谢分享:) –

相同的概念,但这里是一个更简单的解决方法,不需要您的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。

+0

这是否适用于早期版本的iOS 11? – nathan

+0

@Nathan该错误仅适用于iOS 11,所以此代码对iOS Keller

+0

也适用于iOS 11.1.2 – bbjay