UILabel 不在我的 UIView 中心

UILabel is not centered in my UIView

我在初始化时将 UILabel 添加到 UIView,但标签不会自行居中。我试过以 layoutSubviews 为中心并以编程方式添加约束但没有成功。当它出现时,它位于中心左侧约 200 像素处。这是我的代码。提前致谢。

- (instancetype)initWithTitle:(NSString *)title andBody:(NSString *)body Andwidth:(CGFloat)width {
self = [super initWithFrame:CGRectMake(0, 0, width, 60)];
if (self) {

    UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 60)];
    containerView.backgroundColor = [UIColor orangeColor];
    [self addSubview:containerView];

    self.winningLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0, 300, 40)];
    self.winningLabel.textColor = [UIColor whiteColor];
    self.winningLabel.font = [UIFont fontWithName:@"Avenir" size:30];
    self.winningLabel.backgroundColor = [UIColor clearColor];
    self.winningLabel.lineBreakMode = NSLineBreakByTruncatingTail;
    self.winningLabel.numberOfLines = 2;
    self.winningLabel.text = @"YOU WIN";
    self.winningLabel.hidden = YES;
    [containerView addSubview:self.winningLabel];

    NSLayoutConstraint *xCenterConstraint = [NSLayoutConstraint constraintWithItem:self.winningLabel attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0];
    [self addConstraint:xCenterConstraint];

    NSLayoutConstraint *yCenterConstraint = [NSLayoutConstraint constraintWithItem:self.winningLabel attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0];
    [self addConstraint:yCenterConstraint];

}

    return self;
}

- (void)layoutSubviews {
    [self.winningLabel setCenter:self.center];
}

我想你忘记了文本对齐。默认情况下,标签中的文本左对齐。如果你想让它在中心,你应该明确指定它。

self.winningLabel.textAlignment = NSTextAlignmentCenter;