动态更改文本的字体大小而不更改UILabel大小

时间:2014-08-14 07:42:55

标签: ios7 ios6 uilabel uifont

我正在开发一个应用程序,其中我有固定大小UILabel,其中可能包含任何大小的文本。 我需要在不改变UILabel大小的情况下调整字体大小。

以下是我试图实现这一目标的方法:

UILabel *errorMessageLabel=[[UILabel alloc]initWithFrame:CGRectMake(0,50,300,30)];
    errorMessageLabel.lineBreakMode =NSLineBreakByTruncatingTail;
    errorMessageLabel.numberOfLines = 0;
    errorMessageLabel.adjustsFontSizeToFitWidth=YES;
    errorMessageLabel.adjustsLetterSpacingToFitWidth=YES;
    if ([[[UIDevice currentDevice] systemVersion] floatValue]>=7.0) {
        [errorMessageLabel setTextAlignment:NSTextAlignmentCenter];
    }
    else{
        [errorMessageLabel setTextAlignment:UITextAlignmentCenter];
        errorMessageLabel.minimumFontSize=5.0;
    }
    [errorMessageLabel setTag:405];
    [errorMessageLabel setFont:[UIFont systemFontOfSize:13]];
    [backgroundView addSubview:errorMessageLabel];

以上解决方案适用于iOS 7,但是当我尝试在iOS 6上运行时,它会正确地改变字体大小,但将文本对齐设置为左侧,忽略其中心对齐。

任何人都可以告诉我如何实现这一目标吗?我试图搜索其他解决方案,但没有任何工作。我无法更改UILabel的尺寸

1 个答案:

答案 0 :(得分:0)

errorMessageLabel.numberOfLines = 1;
errorMessageLabel.adjustsFontSizeToFitWidth = YES;
errorMessageLabel.minimumFontSize = MIN_FONT_SIZE;