如何使用目标c更新代码中的约束

时间:2015-01-26 19:15:41

标签: ios objective-c

在我的xib文件中,我对xib文件中的标签有一个高度约束。 在我的目标c中,我试图使用

来改变它
self.heightConstraint.constant = newHeight;

但是当我在模拟器中运行时没有任何改变。我使用过调试器并确保执行该行。在Spark工具中,我看到标签高度是旧的高度。

如何动态调整高度?

更新:

我已更改我的代码以添加零检查。

if (self.heightConstraint != nil) {
self.heightConstraint.constant = newHeight;
}

我的代码仍然被执行,但没有任何改变。

3 个答案:

答案 0 :(得分:0)

您的代码本身没有任何问题:

self.heightConstraint.constant = newHeight;

但是,即使正在执行,接口中的任何内容都不会改变,因为self.heightConstraint不是对接口中约束的引用。 (可能是nil。)

答案 1 :(得分:0)

我同意马特的观点。您的代码无法正常工作的可能原因是您的出口链接已损坏。通常,当尝试使用插座或操作执行某些操作的代码不起作用时,最可能的原因是插座或操作连接断开。

经验法则:调试立体声或计算机硬件时,请检查电缆。

Xcode中iOS或Mac OS应用程序的推论:调试UI代码时,请检查您的IBOutlet和IBAction连接。

答案 2 :(得分:0)

在视图控制器生命周期的哪个部分,您要更改约束?您可能需要在父视图上调用setNeedsLayout