Первый раз, используя UICollectionView, если вы можете в это поверить, и мне интересно, как заставить ячейки в основном заполнять максимально допустимое пространство.
Вид на SE, он заполняется ... в основном нормально, и как я этого хочу. Конечно, я бы хотел, чтобы блоки доходили до дна черной области (цвета, конечно, временны), но это достаточно близко.
![enter image description here](https://i.stack.imgur.com/KRjPr.png)
На iPhone X и других больших экранах, конечно, он поддерживает «минимальный» интервал, но я бы хотел, чтобы он автоматически настраивал интервал так, чтобы они заполняли область. Два верхних блока сверху и два нижних блока снизу, с равномерно распределенным пространством между ними.
![collection view iphone x](https://i.stack.imgur.com/V1W5O.png)
Как ни странно, мне удалось достичь этого довольно легко, когда я делал это вручную с каждым из них в обычном режиме. Я начал пытаться использовать UICollectionView
, потому что он стал действительно уродливым, когда повернулся в ландшафтный режим. Вот пример того, как эти элементы были настроены с использованием более ручного метода.
![enter image description here](https://i.stack.imgur.com/9szH0.png)
![collection view size inspector](https://i.stack.imgur.com/Sq0Md.png)
Есть предложения? Похоже, что-то, что было бы легко переключаться ... но я, кажется, врезался в стену и тупик. Я что-то упускаю так очевидно здесь или как?!?
О, и я тоже играл с использованием:
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
Чтобы установить интервал между позициями программно, но это тоже не без проблем. Там я проверял высоту экрана, делил ее на количество элементов и использовал ее в качестве интервала.
Сначала это казалось " работой ".
Но в моем тестировании эта функция срабатывает только при первой загрузке представления, а затем только , когда она переходит в ландшафтный режим. Когда он выходит из и возвращается к портрету, он не перезапускается и не пересчитывается. Таким образом ... сохраняя (теперь новый) ландшафтный интервал.