我正在尝试让我的容器 View 正常工作。问题是当将乘数更改为与 0.5 不同的值时,我得到:
Unable to simultaneously satisfy constraints.
例如,如果我将 *c2 multipier 更改为 0.4,将 *c8 更改为 0.6,则会出现上述错误。但如果我改回0.5,那就没问题了。我在这里做错了什么? 我有更多的限制,但它们是垂直布局的,所以我不认为它们是问题。
NSLayoutConstraint *c1 = [NSLayoutConstraint constraintWithItem: contentView
attribute: NSLayoutAttributeLeft
relatedBy: NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:0.0];
NSLayoutConstraint *c2 = [NSLayoutConstraint constraintWithItem: contentView
attribute: NSLayoutAttributeWidth
relatedBy: NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:.4
constant:0.0];
// detailView
NSLayoutConstraint *c7 = [NSLayoutConstraint constraintWithItem: detailView
attribute: NSLayoutAttributeRight
relatedBy: NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1.0
constant:0.0];
NSLayoutConstraint *c8 = [NSLayoutConstraint constraintWithItem: detailView
attribute: NSLayoutAttributeWidth
relatedBy: NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:.6
constant:0.0];
最佳答案
我使用 relatedBy:NSLayoutRelationGreaterThanOrEqual 取得了成功。
例如:
[self.view addConstraint:
[
NSLayoutConstraint
constraintWithItem: _accountRegisteredDateLabel
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationGreaterThanOrEqual
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:.30
constant:0
]
];
关于iphone - 更改constraintWithItem中的乘数时无法满足约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13138430/