Вычисление ширины ячейки в UICollectionView внутри ContainerView - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть UICollectionView, и я реализовал делегат для вычисления ширины моих ячеек для расстояния 0 между ячейками.

Сам по себе он прекрасно работает, но когда он отображается внутри контейнера меньше размера устройства, iOS неправильно вычисляет расстояние между ячейками, добавляя горизонтальное пространство, которое мне не нужно.

Я проверил правильность ширины, которую я использую для расчета размера ячейки, поэтому я не уверен, что является причиной проблемы.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let widthPerItem = view.frame.width / itemsPerRow

    return CGSize(width: widthPerItem, height: 60)
}

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Хорошо, проблема на самом деле была связана с тем, что мой контроллер uicollectionview не правильно настроил размер родительского контейнера. Переход к контроллеру uiview со встроенным uicollectionview плюс ограничения устранил проблему.

0 голосов
/ 28 апреля 2018

Вы рассчитываете размер ячейки на основе размера view. Поскольку collectionView не занимает всю ширину экрана, вы получаете неверное значение. Вместо этого вы должны основывать свои вычисления на ширине самого collectionView.

Используйте bounds collectionView вместо frame view:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  let widthPerItem = collectionView.bounds.width / itemsPerRow

  return CGSize(width: widthPerItem, height: 60)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...