UICollectionView с 3 столбцами не дает желаемого результата - PullRequest
0 голосов
/ 11 октября 2018

Я тестирую это на симуляторе iPhone XR.У меня есть 3 ряда изображений, и я хочу, чтобы они отображались в 3 столбцах, с расстоянием 2 точки сверху, слева, справа и снизу.Раньше это работало, но по некоторым причинам это не сейчас.

extension ProfileVC : UICollectionViewDelegateFlowLayout {
override func size(forChildContentContainer container: UIContentContainer, withParentContainerSize parentSize: CGSize) -> CGSize {
    return CGSize(width: collectionView.bounds.width / 3, height: collectionView.bounds.width / 3)
}

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

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsets(top: 2, left: 2, bottom: 2, right: 2)
}
}

Это мой результат:

enter image description here

1 Ответ

0 голосов
/ 11 октября 2018

Попробуйте реализовать метод indexForath sizeForItemAt, чтобы исправить представление коллекции только для трех столбцов с размером элемента, динамически зависящим от ширины экрана.получить ширину экрана или ширину представления коллекции, затем вычесть предпочтительные пробелы (8), а затем разделить на 3 (3 столбца).Кроме того, в вашей раскадровке или в nib-файле установите minSpacing для строк = 2 и вставьте разделы для top = 2, прокомментируйте вышеприведенные методы и реализуйте только этот метод

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let width = (collectionView.frame.width - 8) / 3
    return CGSize(width: width, height: width)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...