UICollectionView горизонтальный ряд на iPhone SE - PullRequest
0 голосов
/ 25 февраля 2019

У меня небольшая проблема с горизонтальным представлением коллекции.На всех других размерах экрана он остается одной строкой, однако, когда я тестирую его на симуляторе iPhone SE, почему-то collectionView переносится на 2 строки.Любые возможные причины / решения будут высоко оценены!

lazy var collectionView: UICollectionView = {



    let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .horizontal
    layout.minimumLineSpacing = 2


    let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
    layout.sectionInset = UIEdgeInsets.zero


    cv.backgroundColor = .clear
    cv.isPagingEnabled = false


    cv.dataSource = self
    cv.delegate = self


    return cv
}()


    self.addSubview(collectionView)

collectionView.anchor(top: nil, left: bottomView.leftAnchor, bottom: bottomView.bottomAnchor, right: bottomView.rightAnchor, paddingTop: 0, paddingLeft: 1, paddingBottom: 20, paddingRight: 0, width: 1000, height: 150)

1 Ответ

0 голосов
/ 26 февраля 2019

Из вашего кода не очевидно, каково itemSize вашего UICollectionViewFlowLayout, но если высота вашего элемента по крайней мере больше, чем половина вашей высоты содержимого (с учетом minimumInteritemSpacing), вы должны иметьВаши предметы выстроены горизонтально.То, что вы видите сейчас, происходит потому, что UICollectionViewFlowLayout будет складывать элементы друг над другом, если будет достаточно высоты содержимого.Итак, сначала попробуйте:

layout.itemSize = CGSize(width: 100, height: 150)

Еще более верный способ получить высоту вашего collectionView - реализовать следующий метод UICollectionViewDelegateFlowLayout, в котором вы можете установить itemSize на основе этого:

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