UICollectionView显示每个部分的滚动指示符(标题zIndex已损坏)

Vik*_*era 7 ios xcode9-beta

滚动浏览时,UICollectionView它会显示多个滚动指示器.我注意到集合中的每个部分都有一个.查看同时显示三个的屏幕截图:

在此输入图像描述

有谁遇到同样的问题?我正在使用Xcode 9 beta 3.我的collectionview设置很常见:

private let formCollectionView: UICollectionView = {
        let collectionViewLayout = UICollectionViewFlowLayout()
        collectionViewLayout.minimumLineSpacing = 0
        collectionViewLayout.minimumInteritemSpacing = 0
        let collectionView = UICollectionView(frame: .zero, collectionViewLayout: collectionViewLayout)
        collectionView.translatesAutoresizingMaskIntoConstraints = false
        collectionView.backgroundColor = UIColor.clear
        return collectionView
}()
Run Code Online (Sandbox Code Playgroud)

编辑10/16/2017

甚至Twitter似乎也有这个问题:

在此输入图像描述

小智 26

您可以在以下示例中的委托method.as中解决此问题

OC

- (void)collectionView:(UICollectionView *)collectionView willDisplaySupplementaryView:(UICollectionReusableView *)view forElementKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath
    {
        if (@available(iOS 11.0, *)) {
            if ([elementKind isEqualToString:UICollectionElementKindSectionHeader]) {
                view.layer.zPosition = 0;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

迅速

func collectionView(_ collectionView: UICollectionView, willDisplaySupplementaryView view: UICollectionReusableView, forElementKind elementKind: String, at indexPath: IndexPath) {
    if elementKind == UICollectionView.elementKindSectionHeader {
        view.layer.zPosition = 0
    }
}
Run Code Online (Sandbox Code Playgroud)


Vik*_*era 3

好的,首先已经有雷达了。

有一个建议的解决方法。我在我的子类中做了这些废话,部分成功了UICollectionReusableView

override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes) {
    super.apply(layoutAttributes)
    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.01) {
        self.layer.zPosition = 0
    }
}
Run Code Online (Sandbox Code Playgroud)

我这么说是部分原因,因为如果你有更长的时间,UICollectionView它仍然会损坏某些标头。不过大多数都还好。所以这取决于你的情况。希望雷达能尽快得到解决。