当标签中的文本被限制到适合宽度时,如何计算UIFont的大小?

6 iphone cocoa-touch uikit

想象一下UILabel,宽200像素,高50像素.标签内部有文字,标签使文字变小,使其适合标签.但是现在,你如何获得UIFont在标签中可见的大小?让我们想象一下,字体大小是100,并且标签将它压缩到15.然后,你想制作一些其他标签,文字很小,字体大小相同.有没有办法在被标签挤压后获得UIFont的字体大小?

mah*_*udz 15

如果您将UILabel和breakMode等的大小传递给:

CGSize  size = [label.text sizeWithFont:label.font minFontSize:10 actualFontSize:&actualFontSize forWidth:200 lineBreakMode:UILineBreakModeTailTruncation];
Run Code Online (Sandbox Code Playgroud)

actualFontSize应该是您正在寻找的.

更新:

以上内容已被弃用.现在使用的方法是:

- (CGRect)textRectForBounds:(CGRect)bounds
     limitedToNumberOfLines:(NSInteger)numberOfLines
Run Code Online (Sandbox Code Playgroud)

这是一个例子

CGSize  size = [label textRectForBounds:label.bounds
     limitedToNumberOfLines:1].size;
Run Code Online (Sandbox Code Playgroud)