当我将adjustsFontSizeToFitWidth设置为YES的文本添加到标签时,文本不再垂直居中,最终将文本裁剪到标签框架的底部。对于大量文本,它将最终从标签底部消失。

如果您添加较少的文本,则会发生以下情况:

正如我所期望的那样裁剪了该字体(即,字体大小没有减小,文本在标签中垂直居中,并裁剪在顶部和底部。

这是要重现的代码:

- (void)loadView {
    [super loadView];

    self.view.backgroundColor = [UIColor blueColor];
    testLabel = [[UILabel alloc] init];
    testLabel.font = [UIFont boldSystemFontOfSize:172];
    testLabel.textColor = [UIColor blackColor];
    testLabel.adjustsFontSizeToFitWidth = YES;
    testLabel.numberOfLines = 1;
    testLabel.frame = CGRectMake(50, 50, 300, 100);
    testLabel.text = @"123";

    [self.view addSubview:testLabel];
}

这应该发生吗?以及如何使标签垂直居中,而与标签中的字符数无关。

最佳答案

添加

testLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters;

您的代码以使文字在字体比例上垂直居中。

关于ios - AdjustsFontSizeToFitWidth时截断UILabel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12912693/

10-13 06:16