У меня есть представление о том, что на iPhone X рамка выглядит слишком высокой. На любом другом устройстве размеры и прокрутка работают правильно, как показано ниже:

Однако на iPhone X это выглядит так:

Верхний ряд обрезан, и он не прокручивает всевплоть до последнего ряда.Так или иначе, размер правильно вычисляет ширину, но не высоту, которая примерно на 70 пикселей выше.(Меня не беспокоит верхняя и нижняя панели. Я исправлю их позже)
Я предполагаю, что это как-то связано с настройками врезки для экрана iPhone X, но я не могувыяснить, как это исправить.Я пробовал это в том, где я измеряю представление коллекции:
if #available(iOS 11.0, *) {
collectionView.contentInsetAdjustmentBehavior = .always
}
Однако, я не могу исправить это.
Редактировать:
Чтобы уточнить,настройка для этого меню выглядит следующим образом, фактически на экране есть два вида коллекции.Первая прокручивается горизонтально с включенной подкачкой, так что она фиксируется на каждой ячейке.Другие виды коллекций являются ячейками для первого, и они прокручиваются вертикально.Мы назовем эти subCollectionViews.
SubCollectionViews получают размер из исходного представления коллекции, который слишком высок.На раскадровке высота представления коллекции определяется относительно верхней панели и нижней панели подкачки как скрытая.В раскадровке высота представления коллекции примерно на 70 пикселей больше, чем расчетная высота во время выполнения.
Так что для руководства по компоновке ячейки:
override func awakeFromNib() {
cellImage = UIImageView(frame: contentView.frame)
cellImage?.contentMode = .scaleAspectFill
cellImage?.clipsToBounds = true
contentView.addSubview(cellImage!)
}
и для представления коллекциимакет:
layout.scrollDirection = .vertical
layout.minimumLineSpacing = 8
layout.minimumInteritemSpacing = 8
для предустановок раскадровки:

Я думаю, это то, о чем вы просили.Если есть что посмотреть, просто спросите.