Полноэкранный вопрос UICollectionViewCell на iPhone X в ландшафте

В моем приложении я представляю контроллер вида modally, и этот контроллер представления содержит UICollectionView который заполняет супервизор. Каждая ячейка в представлении коллекции должна быть полноэкранной – того же размера, что и границы представления. Для этого я просто устанавливаю itemSize элемента UICollectionViewFlowLayout как размер viewDidLayoutSubviews в 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 <UICollectionViewFlowLayout: 0x7fa6311253b0>, and it is attached to <UICollectionView: 0x7fa63207e800; frame = (0 0; 812 375); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x608000244d70>; layer = <CALayer: 0x60800023ef00>; contentOffset: {-44, 0}; contentSize: {0, 812}; adjustedContentInset: {0, 44, 21, 44}> collection view layout: <UICollectionViewFlowLayout: 0x7fa6311253b0>. 

Что здесь происходит и как это можно решить?

По умолчанию iOS 11 автоматически настраивает вставки содержимого для iPhone X в альбомной ориентации, вызывая эту проблему. Чтобы решить эту проблему, вы можете просто отключить автоматическую настройку вставки содержимого, поскольку в этом случае она не нужна и не нужна.

collectionView.contentInsetAdjustmentBehavior = .never