在父UIView中垂直居中UILabel

时间:2015-03-12 18:03:07

标签: ios iphone xcode uiview uilabel

如何在不更改UILabel的水平位置的情况下垂直(y轴)将UILabel置于其父UIView中心?

以下不是它(它改变了x轴):

[self.label setCenter:CGPointMake(view.frame.size.width / 2, view.frame.size.height / 2)]

同样,我希望沿y轴居中。

2 个答案:

答案 0 :(得分:1)

CGPoint center = self.label.center;
center.y = view.frame.size.height / 2;
[self.label setCenter:center];

答案 1 :(得分:0)

我宁愿建议在这种情况下应用autolayout约束。下面的约束将在父视图的中心垂直对齐。在第二个约束中,我将值20保持为x坐标。您可以用自己的值替换它。

NSLayoutConstraint *constraintY = [NSLayoutConstraint constraintWithItem:self.label attribute:NSLayoutAttributeCenterY
                      relatedBy:NSLayoutRelationEqual toItem:view
                      attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0.0];
[view addConstraint:constraintY];
NSLayoutConstraint *constraintX = [NSLayoutConstraint constraintWithItem:self.label attribute:NSLayoutAttributeLeading
                          relatedBy:NSLayoutRelationEqual toItem:view
                          attribute:NSLayoutAttributeLeading multiplier:1.0 constant:20.0];
[view addConstraint:constraintX];