水平收集视图有一个小问题。在所有其他屏幕尺寸上,它保持为一行,但是由于某种原因,当我在iPhone SE模拟器上对其进行测试时,collectionView会分成两行。任何可能的原因/解决方案将不胜感激!
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)
答案 0 :(得分:0)
根据您的代码,itemSize
中的UICollectionViewFlowLayout
并不明显,但是如果项目的高度至少大于内容高度的一半(请考虑{{1 }}),您的项目应水平排列。您现在看到的是,如果内容高度足够,minimumInteritemSpacing
会将项目堆叠在一起。因此,首先尝试:
UICollectionViewFlowLayout
获取layout.itemSize = CGSize(width: 100, height: 150)
高度的一种更确定的方法是实现以下collectionView
方法,在该方法中,您可以基于该方法设置itemSize:
UICollectionViewDelegateFlowLayout