在我的应用程序中,我以模态方式呈现视图控制器,并且此视图控制器包含填充超级视图的UICollectionView
。集合视图中的每个单元格都需要全屏 - 与视图边界的大小相同。为此,我只需将itemSize
的{{1}}设置为UICollectionViewFlowLayout
中视图的边界大小即可。
除了横向上的iPhone X外,这在所有设备和方向上都能很好地工作。在这种情况下展示该屏幕时,安全区域布局边距似乎正在起作用并影响单元的定位。将单元从显示器的左边缘推过,并向上推,使得单元的底部与主指示器的垂直中心对齐。使用View Debugger检查布局显示集合视图填充屏幕,但单元格的Y位置为-10.67,X位置为0,即使它是从集合视图的前导插入。值得注意的是,这是在控制台中记录的:
viewDidLayoutSubviews
这里发生了什么以及如何解决这个问题?
答案 0 :(得分:15)
默认情况下,iOS 11会在横向上自动调整iPhone X的内容插入内容,从而导致出现此问题。要解决此问题,您可以简单地禁用自动内容插入调整,因为在此方案中不需要也不需要。
collectionView.contentInsetAdjustmentBehavior = .never