我不认为你可以在 Interface Builder 中做到这一点,但通过在代码中创建约束很容易做到这一点。
您的第一个方程式正是我表达约束的方式。第二个等式可能有效,但将原点与宽度联系起来很奇怪。它们是不同的数量。相反,只需将 innerView 的右侧固定到 outerView 的右侧。
我们使用属性NSLayoutAttributeTrailing
而不是NSLayoutAttributeRight
,因此您的界面在本地化 RTL 时会正确翻转。
// innerView.width = outerView.width * 0.5
NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:innerView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:outerView
attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:0];
// innerView.trailing = outerView.trailing
NSLayoutConstraint *rightConstraint = [NSLayoutConstraint constraintWithItem:innerView
attribute:NSLayoutAttributeTrailing
relatedBy:NSLayoutRelationEqual
toItem:outerView
attribute:NSLayoutAttributeTrailing
multiplier:1.0
constant:0];
[outerView addConstraints:@[widthConstraint, rightConstraint]];