以编程方式调整collectionView for safeArea

时间:2018-01-29 02:11:44

标签: ios arrays uicollectionview uiedgeinsets safearealayoutguide

我尝试设置一个水平滚动的集合视图,其中包含大小为CGSize的单元格(width:view.frame.width,height:view.frame.height)。但是,导航栏顶部部分覆盖了我的单元格,并且使用边缘插入不能干净地适应所有设备。如何将我的单元格顶部设置在新iPhone X导航栏的底部?

这是问题所在。 collectionView设置在默认的navigationBar下。

Here's the issue

2 个答案:

答案 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.bottomAnchorbottomLayoutGuide.topAnchor)。

答案 1 :(得分:0)

我认为标记答案不是处理 iOS 安全区域的正确方法。

对于 ScrollViews、TableViews 和 CollectionViews,处理它们的标准方法是将边缘固定到 ViewController 的视图上,然后设置内容插入调整:

collectionView.contentInsetAdjustmentBehavior = .always

这意味着内容将在屏幕底部很好地滚动。