调整UILabel的字体,使文本适合标签的边界

时间:2014-03-13 22:54:46

标签: ios objective-c uilabel uifont

我的视图控制器有一个UILabel。它向用户显示美元金额。我有一个默认大小,我喜欢显示的美元金额,如下所示

good

当金额过大时,某些文字会替换为" ..."

bad

我想调整UILabel的文本(使其变小),使文本的磅值足以使点不出现。我能做些快速数学来完成这项工作吗?

3 个答案:

答案 0 :(得分:1)

使用此:

UILabel * label = // your label

// update from @rmaddy and @z s
label.adjustsFontSizeToFitWidth = YES;
label.minimumScaleFactor = 0.5;

这意味着在截断之前,您将允许文本缩小到其大小的一半。相应调整。

如果您在iOS 7之前的环境中工作,也可以使用:

UILabel * label;
label.minimumFontSize = 14;

设置特定的最小字体大小;但是,自iOS 7以来,这已被弃用

答案 1 :(得分:1)

您无需进行数学计算,系统提供的API可以为您完成。在Interface Builder中,将标签的自动收缩设置为最小比例因子0.7(或任何适合您需要的值)。现在文本将根据需要缩小。

enter image description here

答案 2 :(得分:1)

label.adjustsFontSizeToFitWidth = YES;
label.numberOfLines = 1;