在父 UIView 中垂直居中 UILabel

Vertically center UILabel in parent UIView

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

下面不是吗(改变了x轴):

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

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

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

Swift 回答..

var center : CGPoint = self.titleLbl.center
        center.y = self.frame.size.height / 2
        self.titleLbl.center = center

我宁愿建议在这种情况下应用自动布局约束。下面的约束将对齐在父 view.In 第二个约束的中心垂直,我将值 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];