Из вашего кода не очевидно, каково 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)
}