自动布局:更新 UICollectionViewCell 上的约束不起作用

kay*_*a08 5 ios autolayout uicollectionviewcell swift

我在尝试更新 collectionViewCell 上的 UILabel 约束时遇到问题。我的原型单元格看起来像:

细胞原型

我的目标是:我需要编辑红色标签顶部约束的常量,这取决于我是否隐藏绿色标签。

我是如何进行的?

  • 我为红色标签(带红色箭头的那个)上的约束添加了一个 IBoutlet:

    @IBOutlet weak var descriptionTopToPrice: NSLayoutConstraint!

  • 然后 :

    descriptionTopToPrice.constant = 2

    self.contentView.setNeedsUpdateConstraints()

但它不起作用,并且约束不会更新。

我错过了什么?

小智 0

在您的方法中,您必须对代码中的约束值进行硬编码。对于类似的目标,我通常会制定两个约束,一个用于默认布局,一个用于更改。您可以将第二个的优先级设置为低于第一个。这样,您稍后可以删除代码中的第一个约束并调用布局方法。因此,具有较低优先级的第二个约束将取代它。