以编程方式调整 safeArea 的 collectionView
programmatically adjust collectionView for safeArea
我正在尝试设置一个水平滚动的集合视图,其中包含大小为 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
这意味着内容将在屏幕底部很好地滚动。
我正在尝试设置一个水平滚动的集合视图,其中包含大小为 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
这意味着内容将在屏幕底部很好地滚动。