我正在尝试设置一个水平滚动的集合视图,其中包含大小为 CGSize(宽度:view.frame.width,高度:view.frame.height)的单元格。但是,我的单元格在顶部被导航栏部分覆盖,并且使用边缘插图并不能完全适应所有设备。如何将单元格的顶部设置在新 iPhone X 导航栏的底部?
这就是问题所在。collectionView 设置在默认的 navigationBar 下。
我正在尝试设置一个水平滚动的集合视图,其中包含大小为 CGSize(宽度:view.frame.width,高度:view.frame.height)的单元格。但是,我的单元格在顶部被导航栏部分覆盖,并且使用边缘插图并不能完全适应所有设备。如何将单元格的顶部设置在新 iPhone X 导航栏的底部?
这就是问题所在。collectionView 设置在默认的 navigationBar 下。
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
)。
我认为标记的答案不是在 iOS 上处理安全区域的正确方法。
使用 ScrollViews、TableViews 和 CollectionViews 处理它们的标准方法是将边缘固定到 ViewController 的视图,然后设置内容插入调整:
collectionView.contentInsetAdjustmentBehavior = .always
这意味着内容将在屏幕底部很好地滚动。