状态栏下的CollectionView标头内容

Kel*_*Lau 2 ios uicollectionview safearealayoutguide iphone-x

以下是启用了安全区域布局指南的限于超级视图的顶部,左侧,右侧和底部的集合视图:

在此处输入图片说明

我希望我的收藏视图标题显示状态栏下。对于iPhone 4-8+的屏幕尺寸,我已经实现了这一点,方法是取消选中控制器main的大小检查器中的“安全区域布局指南”view,并添加以下代码:

collectionView.contentInset = UIEdgeInsets(top: -20, left: 0, bottom: 0, right: 0)
Run Code Online (Sandbox Code Playgroud)

对于非iPhone X视图尺寸,这看起来很棒:

在此处输入图片说明

但是,对于iPhone X,这将导致以下输出:

在此处输入图片说明

iPhone X在状态栏上有其自己的尺寸。进一步调整顶部插图确实可以,但是会抵消其他设备的尺寸。我想知道是否有一种更优雅的方式来实现此行为。

Kel*_*Lau 8

找到一个解决方案:

collectionView.contentInset.top = -UIApplication.shared.statusBarFrame.height
Run Code Online (Sandbox Code Playgroud)


Ale*_*toc 8

前面的解决方案有效,但这可能是最简单的解决方案:

collectionView.contentInsetAdjustmentBehavior = .never

  • 确实如此,但这会导致底部低于底部安全区域。这可能不是您想要的。 (3认同)