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

问题描述 投票:0回答:1

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

enter image description here

但是我希望第一个单元格直接在屏幕的顶部(半透明的导航栏和状态栏下方)开始。

如果设置collectionView.contentInsetAdjustmentBehavior = .never,则顶部效果很好,但集合视图内容的底部部分被标签栏隐藏了-不能一直滚动到底部。因此,我必须再次手动添加底部插图吗?如何获得标签栏的高度,包括带有主页栏的设备上的底部安全区域?还是有更好的方法告诉collectionview仅忽略顶部区域进行内容插入调整?

ios uicollectionview
1个回答
0
投票

将调整行为设置为.never后,您只需要手动设置集合视图的底部内容插图。

可以在safeAreaInsets中找到正确的插图(包括标签栏和任何主页栏。)>

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

您需要在已设置safeAreaInsets的时候执行此操作,例如viewDidLayoutSubviews

据我所知,过去曾经可以通过简单地调整包含视图控制器的edgesForExtendedLayout属性来实现,但是我相信在iOS 11中引入安全区域后该特性就被淘汰了。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.