iOS: 以编程方式更改 UIView 的高度约束

iOS: Programmatically change height constraint of a UIView

我想知道有没有办法以编程方式检索特定 UIView 的高度限制并在代码中更改其值?我遇到这样一种情况,我有几个 UIViews,在 IB 中固定了四个边并添加了高度限制(如果我不这样做,IB 会抱怨),但在程序中间我需要更改 UIViews 并导致一些 UIViews 在视图中被向下推。

我知道我可以 ctrl+drag 每个 UIViews 的高度限制并在代码中更改它们的值,但这样做需要我连接几十个他们。所以我认为这在某种程度上效率不高且不可扩展。

所以我想知道有没有办法通过代码完全检索特定视图的高度限制并动态更改它?

谢谢!

您可以从界面生成器将特定约束连接到您的代码,例如

并且NSLayoutConstraint有一个常量属性要设置,这是你的固定引脚值。

如果您以编程方式添加约束,您肯定可以从 NSLayoutConstraint class 中的标识符 属性 中获益。设置它们并迭代它们以获得特定的识别约束。

如文档所述

extension NSLayoutConstraint {
    /* For ease in debugging, name a constraint by setting its identifier, which will be printed in the constraint's description.
     Identifiers starting with UI and NS are reserved by the system.
     */
    @availability(iOS, introduced=7.0)
    var identifier: String?
}

首先将高度限制添加到您的 .h 文件中:

//Add Outlet     
IBOutlet NSLayoutConstraint *ViewHeightConstraint;

接下来,将以下代码添加到您的 .m 文件中:

//Set Value From Here   
ViewHeightConstraint.constant = 100;