滚动条错误地出现在UICollectionView部分标题下方

Soj*_*oja 29 uicollectionview uicollectionviewcell swift

出于某种原因,我的滚动条始终显示在集合视图部分标题下方.任何帮助是极大的赞赏!

在此输入图像描述

nat*_*ter 27

我找到了一个解决方法.此问题是zPosition标题视图的集合视图未正确设置.要解决这个问题,我们将始终确保这zPosition是我们期望的价值.

创建一个CALayer子类,防止其zPosition为0以外的任何东西.

class CustomLayer: CALayer {
    override var zPosition: CGFloat {
        get { return 0 }
        set {}
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将集合视图头的图层类设置为此新子类.

class MyHeaderView: UICollectionReusableView {

    // your other custom code here

    override class var layerClass: AnyClass {
        get { return CustomLayer.self }
    }

}
Run Code Online (Sandbox Code Playgroud)

这是一个iOS 11错误,因为在iOS 10中不会出现此问题.希望这个问题能够很好地解决,直到修复错误.

  • 它悲哀地看到,这仍是iOS的12个问题 (4认同)

Kel*_*ler 19

相同的概念,但这里有一个更简单的解决方法,不需要您的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中测试过.