2012-10-16 71 views
21

當我將文本添加到標籤adjustsFontSizeToFitWidth設置爲YES時,文本不再居中居中並最終剪裁標籤框底部的文本。對於大量的文本,它最終會從標籤的底部消失。調整時裁剪UILabelFontSizeToFitWidth

View background is blue, label background is white

這是如果添加較少的文本會發生什麼:

enter image description here

,因爲我希望它這是剪切(即字體大小並沒有減少,對文本垂直居中在標籤和夾在頂部和底部。

enter image description here

以下是重現的代碼:

- (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]; 
} 

這是否應該發生?我如何讓我的標籤垂直居中,無論標籤中的字符數是多少。

回答

38

你的代碼添加

testLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters; 

垂直中心上字體放大文本。

+1

輝煌,克魯梅爾!這工作完美,我不知道這個屬性。我將有助於adjustFontSizeToFitWidth屬性提到這是類的引用。再次感謝。 –

+0

完美地工作。 –

+1

這麼多年與UILabel合作,我從未遇到過這個屬性)) – Tim

-1

還想補充一點,adjustsFontSizeToFitWidth不能很好地處理屬性文本,因此,如果可以,請將屬性添加到標籤而不是屬性文本。這對我有效。