更新约束值在自动布局中不起作用

时间:2015-04-15 12:31:25

标签: ios objective-c iphone

我已经为顶部间距的约束创建了IBOutlet。我需要在viewDidLoad中以编程方式更新约束的值。这是我在IBOutlet中的声明:

 IBOutlet NSLayoutConstraint *labelTopSpace;

以下是我改变顶部的方式:

labelTopSpace.constant = 50.0;

但这不符合我的情况。我错过了什么吗?

更新:我应该制作它的属性吗?

3 个答案:

答案 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替换b​​tn。{say self.view //如果是为了观察}

在这种情况下,您无需为Constraint创建属性或IBOulet引用。

您可以按上述方式直接更改..

希望它对您来说是有用的替代解决方案......!