我已经为顶部间距的约束创建了IBOutlet。我需要在viewDidLoad中以编程方式更新约束的值。这是我在IBOutlet中的声明:
IBOutlet NSLayoutConstraint *labelTopSpace;
以下是我改变顶部的方式:
labelTopSpace.constant = 50.0;
但这不符合我的情况。我错过了什么吗?
更新:我应该制作它的属性吗?
答案 0 :(得分:0)
使其属性,如
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *labelTopSpace;
然后检查插座连接。类似问题Unable to make outlet connection to a constraint in IB
答案 1 :(得分:0)
希望,您已经提到了方法下的所有约束!
- (void)updateViewConstraints
{
[super updateViewConstraints];
_labelTopSpace.constant = 50;
}
答案 2 :(得分:0)
尝试使用以下代码..
[btn setConstraintConstant:50.0 forAttribute:NSLayoutAttributeTop];
你可以用任何你需要修改约束的Ref替换btn。{say self.view //如果是为了观察}
在这种情况下,您无需为Constraint创建属性或IBOulet引用。
您可以按上述方式直接更改..
希望它对您来说是有用的替代解决方案......!