约束不适用于UICollectionView

时间:2018-12-08 11:01:30

标签: ios swift uicollectionview autolayout constraints

在我的应用程序中,有三个“ UICollectionViews”。如果我将constraints设置为它们,它们会变得有些奇怪...'UICollectionViews'融合在一起,并且只显示其中一个,而UICollectionViewCells不会在拉伸时被拉伸屏幕更大(iPad / iPhone +)。

在'UICollectionViews'上使用约束时,我需要考虑什么特别之处吗?

下面的图片可以使我的意思更清楚:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

看起来像单元格大小和视图大小不匹配,因为您没有提到该单元格。

在这种情况下,请关闭“收集视图流布局”,然后相应地调整单元格大小。

@IBOutlet weak var collView: UICollectionView!
@IBOutlet weak var collLayout: UICollectionViewFlowLayout!

override func viewDidLayoutSubviews() {
    var w = self.view.frame.width
    if #available(iOS 11.0, *) {
        w = self.view.safeAreaLayoutGuide.layoutFrame.width
    }
    let padding:CGFloat = 20
    let spacing:CGFloat = 5
    let columns:CGFloat = 6
    let cw = ceil((w - padding) / columns)
    collLayout.itemSize = CGSize(width: cw - spacing*2, height: cw - spacing*2)
    collLayout.minimumLineSpacing = spacing
    collLayout.minimumInteritemSpacing = spacing

    super.viewDidLayoutSubviews()
}