我有一个水平 UICollectionView,我希望它每列有一个项目,全部在一行中。这些元素的尺寸各不相同。为了做到这一点,我使用了这个 UICollectionViewFlowLayout:
let layout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 0, left: 50, bottom: 0, right: 50)
layout.scrollDirection = .horizontal
layout.minimumInteritemSpacing = CGFloat.greatestFiniteMagnitude
然后我用该布局初始化了我的 UICollectionView。
项目大小是正确的,但有时它们会放在同一列中,这很糟糕。根据this answer ,我的最后一行应该可以解决问题,但事实并非如此。最后一行只是使项目彼此相距极远。我还使用 collectionView.height
而不是 CGFloat.greatestFiniteMagnitude
进行了测试,但我得到了同样糟糕的结果。
我该如何解决这个问题,这可能是 Swift 4 的错误吗? –– 这是在 Swift 4 中
最佳答案
这似乎解决了问题。我不知道为什么这有效,但它确实有效:)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return view.frame.height
}
关于ios - 水平 Collection View 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45927350/