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

时间:2015-02-03 07:54:09

标签: ios iphone xcode-storyboard

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:42)

首先将高度约束添加到.h文件中:

//Add Outlet     
IBOutlet NSLayoutConstraint *ViewHeightConstraint;

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

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

答案 1 :(得分:41)

您可以从界面构建器(如

)将该特定约束连接到您的代码

enter image description here

并且NSLayoutConstraint具有要设置的常量属性,这是您的常量引脚值。

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

正如文件所说

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?
}