4

我想使代码中的 uiview 约束无效,以强制所有字段根据视图中的特定更改重新布局。

例如,假设我有两个 UILabel,它们被赋予了一个固定的 VerticalSpace 约束。在某些用户事件中,我正在调整顶部标签的大小。我希望能够强制约束使代码无效。

这是我第一次使用约束,我不明白如何从代码中做到这一点。我知道当设备旋转时,UIViews 上的约束无效。

4

1 回答 1

6

您调用setNeedsLayout相关视图,通常是您的视图控制器的.view. :

[self.view setNeedsLayout];

您并没有真正使约束无效,这是用于自定义视图的稍微不同的东西,它可能需要根据其他更改删除和重新计算约束。你所做的是让视图知道它用来计算其布局的一些因素现在已经改变了。约束仍然有效,但结果发生了变化。

要为您的新布局设置动画,您可以layoutIfNeeded在动画块内调用。

于 2012-12-15T08:31:11.453 回答