ios UICollectionView位于导航栏下,但不在选项卡栏下

v6ylcynt  于 2022-12-27  发布在  iOS
关注(0)|答案(1)|浏览(150)

我有一个UICollectionView,我想把它放在导航栏下面。基本上,我想让它忽略整个顶部安全区域,但仍然希望它尊重底部安全区域,因为那里有一个标签栏。这是它目前的样子:

但是我希望第一个单元格直接从屏幕的最顶部开始,在(半透明的)导航栏和状态栏下面。
如果我设置了collectionView.contentInsetAdjustmentBehavior = .never,那么顶部的部分工作正常,但是集合视图内容的底部被标签栏隐藏了--可以说你不能一直滚动到底部。所以我必须再次手动添加底部插入。我如何获得标签栏的高度,包括任何底部安全区域的设备上有家庭酒吧?或者有没有更好的方法告诉collectionview只忽略顶部区域的内容插入调整?

u3r8eeie

u3r8eeie1#

在将调整行为设置为.never之后,您只需要手动设置集合视图的底部内容插入。
正确的插入(包括标签栏和任何主栏)可以在safeAreaInsets中找到。

collectionView.contentInsetAdjustmentBehavior = .never
collectionView.contentInset.bottom = collectionView.safeAreaInsets.bottom

您需要在设置了safeAreaInsets(如viewDidLayoutSubviews)的时候执行此操作。
据我所知,它曾经是可能的,只需调整edgesForExtendedLayout属性的包含视图控制器,但这是逐步淘汰时,安全区被引入iOS 11我相信。

相关问题