代码之家  ›  专栏  ›  技术社区  ›  pete

如何以编程方式更改按钮大小而不累积大量约束?

  •  0
  • pete  · 技术社区  · 4 年前

    我用下面的代码测试了修改约束的可行性

    sortButton.widthAnchor.constraint(equalToConstant: 5.0).isActive = true
    sortButton.widthAnchor.constraint(equalToConstant: 500.0).isActive = true
    

    我以为500会超过5。不过,控制台表示存在冲突,它将打破500限制,以保持宽度为5。我知道我可以通过将“isActive”设置为false来禁用5.0版本。但是,这与实际删除旧约束不同。如果在运行应用程序的过程中不断地将按钮大小更改为任意值,这将是一个问题。约束的数量只会不断增长,无休止地增长。改变按钮大小任意次数的正确方法是什么?我也试过用这个框架,但没有效果。

    0 回复  |  直到 4 年前
        1
  •  1
  •   RIshabh Shukla    4 年前

    你可以参考一下

    weak var widthConstraint: NSLayoutConstraint? 
    widthConstraint = sortButton.widthAnchor.constraint(equalToConstant: 5.0)
    

    现在你可以操纵这个变量了

    widthConstraint?.isActive = true
    

    widthConstraint?.constant = 500
    

    yourStackView.layoutIfNeeded()