場景需求:
圖1橢圓內(nèi)文字大小自適應(yīng)顯示搪缨,因為前邊整快是生成的一個圖片所以必須要有需要顯示的文字的字號才行(當(dāng)然哪位大佬有更好的方法歡迎交流學(xué)習(xí))抓歼。
解決方法(結(jié)尾附上根據(jù)實例UIFont巾表,獲取大心涨怼)
最笨的方法(畢竟實在沒辦了)炬太,直接上了兩個UILabel孔祸,一個寬高固定隆敢,一個不設(shè)寬高,前者設(shè)置字號自適應(yīng)崔慧,然后分別賦值text獲取兩個UILabel的寬度拂蝎,如果后者寬度大于前者就可以計算比例,從而大致計算出字號大谢淌摇(只能大概不能精確)温自,以下是代碼
搞定
一下是我經(jīng)歷的一些曲折
在網(wǎng)上看到了好多獲取最終字號大小的方法如下圖:
然而我試了 玄货,不知道是我用的方法不對還是什么原因,每次獲取出來的字號都不對悼泌,最后不得已放棄了松捉。
然后我又另辟蹊徑查看了UIFont的所有屬性然后發(fā)現(xiàn)都是只讀的,但是系統(tǒng)卻提供了一個方法(+ (UIFont*)fontWithDescriptor:(UIFontDescriptor*)descriptorsize:(CGFloat)pointSizeAPI_AVAILABLE(ios(7.0));)好像有點用馆里,結(jié)果還是以失敗告終隘世,里邊并沒有設(shè)置或者獲取最終字號的方法。
獲取字號
另外已知一個字體實例UIFont鸠踪,獲取其字號大小的方法(一般用于對html片段轉(zhuǎn)富文本獲取字號大小時)丙者,附在末尾,希望對大家有用
NSNumber *font_size = [[UIFont systemFontOfSize:15.].fontDescriptor objectForKey:UIFontDescriptorSizeAttribute];? ? NSLog(@"UIFont.description-font_size ? %@",font_size);