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

Mar*_*cus 33 iphone ios xcode-storyboard

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

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

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

谢谢!

Bha*_*han 42

首先为.h文件添加高度约束:

//Add Outlet     
IBOutlet NSLayoutConstraint *ViewHeightConstraint;
Run Code Online (Sandbox Code Playgroud)

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

//Set Value From Here   
ViewHeightConstraint.constant = 100;
Run Code Online (Sandbox Code Playgroud)


Ash*_*eeq 41

您可以从界面构建器中将该特定约束连接到您的代码

在此输入图像描述

并且NSLayoutConstraint具有恒定的属性,这是您的恒定引脚值.

如果以编程方式添加约束,则可以从NSLayoutConstraint类中的identifier属性中受益.设置它们并迭代它们以获得特定的已识别约束.

正如文档所说

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?
}
Run Code Online (Sandbox Code Playgroud)