当-adjustsFontSizeToFitWidth设置为YES时,如何计算UILabel的字体大小?

don*_*ile 25 iphone cocoa-touch uikit uilabel

myLabel.adjustsFontSizeToFitWidth = YES,UILabel将自动调整字体大小,以防文本对于标签太长.例如,如果我的标签仅仅是100像素宽,我的文字太长,以适应当前的字体大小,直到文本适合的标签,它就会减少下来的字体大小.

当字体缩小时,我需要从UILabel获取实际显示的字体大小.例如,假设我的字体大小实际上是20,但UILabel不得不将其缩小到10.当我向UILabel询问字体和字体大小时,我得到的是旧字体大小(20),但不是显示的字体大小(10).

Ed *_*rty 6

我不确定这是否完全准确,但它应该非常接近,希望如此.它可能不会考虑截断的字符串,也不会考虑标签的高度,但这可能是您可以手动完成的.

方法

- (CGSize)sizeWithFont:(UIFont*)font minFontSize:(CGFloat)minFontSize actualFontSize:(CGFloat*)actualFontSize forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode

将返回文本大小,并注意它还具有所用实际字体大小的引用参数.

  • 此方法现已在iOS 7中弃用.请参阅http://stackoverflow.com/questions/19195541/how-to-calculate-actual-font-size-in-ios-7 (3认同)
  • 这也将返回给定字体大小的边界框大小...不是给定的边界框大小的字体大小. (2认同)