我尝试设置一个水平滚动的集合视图,其中包含大小为CGSize的单元格(width:view.frame.width,height:view.frame.height)。但是,导航栏顶部部分覆盖了我的单元格,并且使用边缘插入不能干净地适应所有设备。如何将我的单元格顶部设置在新iPhone X导航栏的底部?
这是问题所在。 collectionView设置在默认的navigationBar下。
答案 0 :(得分:1)
if #available(iOS 11.0, *) {
collectionView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
} else {
collectionView.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor).isActive = true
}
您也应该考虑底部安全区域,尤其是iPhone X(view.safeAreaLayoutGuide.bottomAnchor
和bottomLayoutGuide.topAnchor
)。
答案 1 :(得分:0)
我认为标记答案不是处理 iOS 安全区域的正确方法。
对于 ScrollViews、TableViews 和 CollectionViews,处理它们的标准方法是将边缘固定到 ViewController 的视图上,然后设置内容插入调整:
collectionView.contentInsetAdjustmentBehavior = .always
这意味着内容将在屏幕底部很好地滚动。