如何在UICollectionViewCell上设置约束?

时间:2018-10-19 02:06:33

标签: ios swift uicollectionview uistoryboard nslayoutconstraint

我希望我的单元格的宽度与每种屏幕尺寸上的屏幕宽度相同。由于该选项显示为灰色,因此无法在情节提要中设置约束,而以编程方式设置约束会导致错误,提示“无法使用锚点激活约束...因为它们没有共同的祖先”,即使我仅将约束设置为视图的前导和尾随锚。

现在设置情节提要的方式是,单元格在iPhone SE上具有所需的宽度,在较大的屏幕尺寸上具有相同的宽度。

2 个答案:

答案 0 :(得分:0)

这可以帮助您将collectionView宽度设置为与屏幕宽度相同。 在您的viewDidLoad()中编写此代码

let height: CGFloat = 100.0 //Some constant
let width: CGFloat = self.view.frame.width

let spLayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
spLayout.itemSize = CGSize(width: width, height: height)

答案 1 :(得分:0)

您可以使用委托方法

viewcontroller:UICollectionViewDelegateFlowLayout {
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize.init(
            width: collectionView.bounds.height,
            height: collectionView.bounds.height
        )
    }