作者:低调浪漫0613 | 来源:互联网 | 2023-01-16 11:00
在我的应用程序中,我以模态方式呈现视图控制器,并且此视图控制器包含UICollectionView
填充超级视图的视图.集合视图中的每个单元格都需要全屏 - 与视图边界的大小相同.要做到这一点,我简单地设置itemSize
的UICollectionViewFlowLayout
是视图的约束的大小viewDidLayoutSubviews
.
这在除了横向上的iPhone X之外的所有设备和方向上都能很好地工作.在这种情况下展示该屏幕时,安全区域布局边距似乎正在起作用并影响单元的定位.将单元从显示器的左边缘推过,并向上推,使得单元的底部与主指示器的垂直中心对齐.使用View Debugger检查布局显示集合视图填充屏幕,但单元格的Y位置为-10.67,X位置为0,即使它是从集合视图的前导插入.值得注意的是,这是在控制台中记录的:
The behavior of the UICollectionViewFlowLayout is not defined because:
the item height must be less than the height of the UICollectionView minus the section insets top and bottom values, minus the content insets top and bottom values.
The relevant UICollectionViewFlowLayout instance is , and it is attached to ; layer = ; contentOffset: {-44, 0}; contentSize: {0, 812}; adjustedContentInset: {0, 44, 21, 44}> collection view layout: .
这里发生了什么,如何解决?
1> Jordan H..:
默认情况下,iOS 11会自动为横向调整iPhone X的内容插入内容,从而导致出现此问题.要解决此问题,您可以简单地禁用自动内容插入调整,因为在此方案中不需要也不需要.
collectionView.cOntentInsetAdjustmentBehavior= .never