场景需求:

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

然而我试了 ,不知道是我用的方法不对还是什么原因,每次获取出来的字号都不对,最后不得已放弃了。
然后我又另辟蹊径查看了UIFont的所有属性然后发现都是只读的,但是系统却提供了一个方法(+ (UIFont*)fontWithDescriptor:(UIFontDescriptor*)descriptorsize:(CGFloat)pointSizeAPI_AVAILABLE(ios(7.0));)好像有点用,结果还是以失败告终,里边并没有设置或者获取最终字号的方法。
最后我实在没办了,用了一种最笨的方法,直接上了两个UILabel,一个宽高固定,一个不设宽高,前者设置字号自适应,然后分别赋值text获取两个UILabel的宽度,如果后者宽度大于前者就可以计算比例,从而大致计算出字号大小(只能大概不能精确),一下是代码

搞定
网友评论