【问题标题】:Autolayout : Update constraints on UICollectionViewCell doesn't work自动布局:UICollectionViewCell 上的更新约束不起作用
【发布时间】:2015-02-03 18:55:47
【问题描述】:

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

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

我是如何进行的?

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

    @IBOutlet weak var descriptionTopToPrice: NSLayoutConstraint!

  • 然后:

    descriptionTopToPrice.constant = 2

    self.contentView.setNeedsUpdateConstraints()

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

我错过了什么吗?

【问题讨论】:

  • 你试过 layoutIfNeeded() 吗?我通常使用它并且从未遇到过问题。
  • 如何隐藏/取消隐藏绿色标签?当您执行隐藏/取消隐藏尝试重新加载单元格时会发生什么?通过在 UICollectionView 上调用 reloadData 或使用 reloadItemsAtIndexPaths 定位特定单元格。
  • 谢谢,不是layoutIfNeeded(),我忘记添加宽度/高度约束了..!我不需要重新加载单元格

标签: ios swift autolayout uicollectionviewcell


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多