Как исправить размер ячейки CollectionView и сделать автоматический макет независимо от исходного состояния симулятора? - PullRequest
0 голосов
/ 22 марта 2020

Код для установки ширины и высоты ячейки коллекции: и enter image description here

Но когда симулятор находится в горизонтальном положении перед запуском схемы, мы получаем enter image description here и enter image description here

Размер ячеек будет меняться в зависимости от исходного состояния симулятора. Я думаю, причина в том, что collectionView.frame.width зависит от состояния симулятора.

Как исправить размер ячейки с помощью автоматического размещения, как в коде, независимо от исходного состояния ipad?

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Лучший и самый простой способ справиться с этим - сделать его квадратным, а не прямоугольным. в принципе имеют одинаковое значение для ширины / высоты, по моему мнению. Если это не поможет вам попытаться сделать это ниже, и одно небольшое изменение в вашем коде - это использовать границы вместо фреймов.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: collectionView.bounds.width/5, height: collectionView.bounds.width/5)
}

также, если вы можете угадать разницу в размере между ними, вы также можете уменьшить это bounds.width/5 -10

0 голосов
/ 22 марта 2020
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let standardWidth = max(collectionView.frame.width, collectionView.frame.height)
    return CGSize(width: standardWidth/5, height: standardWidth/5)
}

Это простое решение хорошо работает.

...