中心子视图比使用可视格式语言的超级视图大

时间:2013-12-19 22:04:50

标签: ios objective-c autolayout nslayoutconstraint

我正在尝试将子视图(200宽)置于100宽的较小超视图中。使用下面的约束,它最终在x = -100而不是x = -50。

[NSLayoutConstraint constraintsWithVisualFormat:@"H:[statusLabel(200)]"
                                        options:NSLayoutFormatAlignAllCenterX
                                        metrics:nil
                                          views:viewDict];

1 个答案:

答案 0 :(得分:0)

对齐约束(如NSLayoutFormatAlignAllCenterX)用于将多个兄弟对象相互对齐,而不是将单个对象与其超级视图对齐。要做到这一点,你需要使用......

NSLayoutConstraint *c = [NSLayoutConstraint constraintWithItem:self.outerView
                                  attribute:NSLayoutAttributeCenterX
                                  relatedBy:NSLayoutRelationEqual
                                  toItem:self.innerView
                                  attribute:NSLayoutAttributeCenterX
                                  multiplier:1.f constant:0.f];