修改常量后布局不变

Posted

技术标签:

【中文标题】修改常量后布局不变【英文标题】:Layout doesn't change after modifying constants 【发布时间】:2013-03-12 07:02:20 【问题描述】:

我的UIViewController 上有一个UIView。我使用 Editor -> Pin -> Width/Height 设置宽度和高度。我还创建了这些约束的IBOutlet 以编程方式更改宽度和高度。我写代码

在.h文件中

@property (strong, nonatomic) IBOutlet NSLayoutConstraint *viewWidth;
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *viewHeight;

在 .m 文件中

self.viewWidth.constant = 480;
self.viewHeight.constant = 644;

但它仍然没有改变视图的宽度和高度。我错过了什么吗? 提前致谢。

【问题讨论】:

【参考方案1】:

更新常量后,需要调用-layoutIfNeeded-setNeedsUpdateConstraints

【讨论】:

【参考方案2】:

这是一种无需 IBOutlet 以编程方式更新约束常量的解决方案。

Hide autolayout UIView : How to get existing NSLayoutConstraint to update this one

【讨论】:

以上是关于修改常量后布局不变的主要内容,如果未能解决你的问题,请参考以下文章

const修饰的常量也是可以被修改的!真的是世界上唯一不变的是变化

常量与变量的区别是啥 如何区别常量与变量

JS 这次真的可以禁止常量修改了!

java中常量和变量的区别?

常量

键盘显示时更改自动布局常量