以编程方式创建UIView的中心X到另一个UIView - Objective C

时间:2015-08-09 15:16:29

标签: ios objective-c uiview autolayout constraints

只是尝试一下,我以编程方式创建一个Button,如下所示

UIBUtton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"Button" forState:UIControlStateNormal];
[button sizeToFit];
[self.view insertSubview:button belowSubview:_testlabel];

我的视图中已经有一个名为_testlabel的现有标签。我正在使用自动布局,我想将我新添加的按钮的中心放在_testlabel上,我尽可能地尝试了下面的代码:

[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:_testlabel attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual toItem:button
attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0.0]];

我所能做的就是将_testlabel的X放在新添加的按钮上,而不是相反。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您可能需要对按钮和标签执行此操作:

    [button setTranslatesAutoresizingMaskIntoConstraints:FALSE];
    [_testlabel setTranslatesAutoresizingMaskIntoConstraints:FALSE];

然后使用:

使用AutoLayout约束格式化lanaguage添加其他调整大小约束
[self.view addConstraints: ... constraintsWithVisualFormat ...];

和/或还使用更多

[self.view addConstraint: ... constraintWithItem ...]