UICollectionView粘贴标头不能正常工作iOS 10

时间:2017-10-11 18:22:19

标签: ios10 uicollectionviewlayout

我的集合视图中的粘性标题在iOS 10中无效。我有一个仅在第二部分中有标题的collectionView - 通过将第一部分中的大小设置为CGSize.zero来实现第二部分的大小为适当的大小:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
        if section == 0 {
            return CGSize.zero
        }
        return CGSize(width: collectionView.width, height: 80.0)

}

我在viewDidLoad:

中使用这些行粘贴标头
theCollectionView.delegate = self
theCollectionView.dataSource = self
if let flowLayout = theCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
    flowLayout.sectionHeadersPinToVisibleBounds = true
}

在iOS 11中一切都很好。当您向上滚动集合视图时,标题会粘在顶部。

但是,在iOS 10中,这不起作用。标题棒 - 但不是屏幕的顶部 - 它坚持它的初始位置,并且可以看到第二部分中的集合视图单元格在其下方滚动。屏幕顶部有一个间隙。我附上了两个截图,说明了我的问题。任何帮助将不胜感激!

Initial View

Sticky Header does not scroll to top

1 个答案:

答案 0 :(得分:0)

通过更改故事板中的顶部自动布局约束来解决此问题。它从Collection View顶部设置到Safe Area顶部。从Collection View顶部更改为Superview顶部。