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

Ios 以编程方式创建的UIView的X中心到另一个UIView-目标C,ios,objective-c,uiview,autolayout,constraints,Ios,Objective C,Uiview,Autolayout,Constraints,为了尝试一下,我以编程方式创建了一个按钮,如下所示 UIBUtton *button = [UIButton buttonWithType:UIButtonTypeSystem]; [button setTitle:@"Button" forState:UIControlStateNormal]; [button sizeToFit]; [self.view insertSubview:button belowSubview:_testlabel]; 我的视图中已经有一个名为_testlabe

为了尝试一下,我以编程方式创建了一个按钮,如下所示

UIBUtton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"Button" forState:UIControlStateNormal];
[button sizeToFit];
[self.view insertSubview:button belowSubview:_testlabel];
我的视图中已经有一个名为_testlabel的现有标签。我正在使用autolayout,我想将新添加的按钮的X置于_testlabel的中心,我尽可能地尝试了以下代码:

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

我所能做的就是将testlabel的X置于新添加的按钮的中心,而不是相反。我在这里遗漏了什么?

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

    [button setTranslatesAutoresizingMaskIntoConstraints:FALSE];
    [_testlabel setTranslatesAutoresizingMaskIntoConstraints:FALSE];
然后使用自动布局约束格式语言添加其他大小调整约束,使用:

[self.view addConstraints: ... constraintsWithVisualFormat ...];
和/或也使用更多

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

您确定要将按钮添加为_testLabel的子视图吗?我不是将其添加为_testLabel的子视图,您看到的,我是将其添加为“下方”_testLabel该调用会将其置于视图层次结构的下方,而不是几何结构的下方。文档太糟糕了!我知道,我用它把它放在视图层次结构的下面。这不是问题所在,请看第二部分。我不想把它放在身体下面。我不敢相信我错过了,我已经绞尽脑汁好几个小时了。。。谢谢!