2014-03-13 21 views
1

我的视图控制器有一个UILabel。它向用户显示一美元金额。我有当用量太大,有些文字被替换为默认大小,我喜欢被显示为美元金额,低于调整UILabel的字体,使文本符合标签的边界

good

显示“...”

bad

我想调整UILabel的文本(使其更小),使文本的点大小足以不出现点。是否有一些快速数学我可以做到这一点?

+0

你为什么不上的UILabel,使得调整大小,并配合使用sizeToFit方法。 – Sandeep

回答

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

这可行,但它也可以在没有将行数设置为1的情况下工作。何时需要? – JuJoDi

+2

1是默认值。如果这是你想要的,不需要明确地设置它。 – rmaddy

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

+0

如果您还启用了'adjustsFontSizeToFitWidth',则只有在设置'minimumScaleFactor'时才有用。 – rmaddy

+0

@rmaddy更新,谢谢你的收获,我错过了那一个。 – Logan

1

没有必要为你做数学,系统提供的API可以为你做。在Interface Builder中,将标签的自动缩放设置为0.7的最小缩放因子(或任何适合您需要的值)。文字现在会根据需要缩小。

enter image description here