当UILabel.adjustsFontSizeToFitWidth = YES时获取最终显示字号大小

场景需求:

图1

图1椭圆内文字大小自适应显示,因为前边整快是生成的一个图片所以必须要有需要显示的文字的字号才行(当然哪位大佬有更好的方法欢迎交流学习)。

解决方法(结尾附上根据实例UIFont,获取大小)

最笨的方法(毕竟实在没办了),直接上了两个UILabel,一个宽高固定,一个不设宽高,前者设置字号自适应,然后分别赋值text获取两个UILabel的宽度,如果后者宽度大于前者就可以计算比例,从而大致计算出字号大小(只能大概不能精确),以下是代码

搞定

一下是我经历的一些曲折

在网上看到了好多获取最终字号大小的方法如下图:

然而我试了 ,不知道是我用的方法不对还是什么原因,每次获取出来的字号都不对,最后不得已放弃了。

然后我又另辟蹊径查看了UIFont的所有属性然后发现都是只读的,但是系统却提供了一个方法(+ (UIFont*)fontWithDescriptor:(UIFontDescriptor*)descriptorsize:(CGFloat)pointSizeAPI_AVAILABLE(ios(7.0));)好像有点用,结果还是以失败告终,里边并没有设置或者获取最终字号的方法。


获取字号

另外已知一个字体实例UIFont,获取其字号大小的方法(一般用于对html片段转富文本获取字号大小时),附在末尾,希望对大家有用

NSNumber *font_size = [[UIFont systemFontOfSize:15.].fontDescriptor objectForKey:UIFontDescriptorSizeAttribute];    NSLog(@"UIFont.description-font_size   %@",font_size);

你可能感兴趣的:(当UILabel.adjustsFontSizeToFitWidth = YES时获取最终显示字号大小)