Размер ячейки и количество элементов в UICollectionView - PullRequest
0 голосов
/ 29 ноября 2018

с использованием UICollectionView делегата потока, я пытаюсь выполнить это, но мне все еще нужно удалить огромный интервал в области двух ячеек.

enter image description here

Мой код:

  func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

            if indexPath.row == 0  || indexPath.row == 5 {

                return CGSize(width: (getWidth()/2) , height:  (getWidth()/2))

            }
            return CGSize(width: (getWidth()/4) , height: (getWidth()/4))
        }

        func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
            return 0
        }
        func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
            return 0
        }
        func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {

            return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
        }

Ожидаемый:

enter image description here

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Они были решены с помощью этого SNCollectionViewLayout

0 голосов
/ 29 ноября 2018

Невозможно сделать, используя plain UICollectionViewLayout.По своей природе UICollectionViewLayout является "компоновкой линейного торможения", а высота строки - высотой ее самого высокого элемента.Пожалуйста, смотрите следующее:

Документы Apple по использованию UICollectionViewFlowLayout

Однако желаемое поведение может быть достигнуто путем создания подкласса UICollectionViewFlowLayout.

Вот руководство о том, как это сделать:

Создание пользовательских макетов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...