詳解iOS設(shè)置字體的三種方式
有時候項目需要顯示一些非系統(tǒng)的字體達到一些UI的效果,目前設(shè)置字體有三種方式,默認方式、bundle方式,coreText方式。
1 默認方式
這種方式就是正常的字體設(shè)置方式
label.font = [UIFont fontwithname:@”Blazed” size:42];
至于第一個參數(shù)的名字,可以通過以下方法輸出所有字體名字列表
[UIFont familyNames]
只要名字列表中存在的,都可以用這種方式關(guān)聯(lián)到對應(yīng)的字體上。
2 綁定自定義的字體包
其實第二種方式和第一種方式在代碼上是一樣的,依舊是通過名字設(shè)置字體
label.font = [UIFont fontwithname:@”Blazed” size:42];
只是要想使用往上下載的字體文件,先將字體文件加到系統(tǒng)的字體目錄中。
具體操作如下:
1 下載目標的字體文件并添加到工程中,名字為fontTest.ttf
2 在info.plist中,添加 Fonts provided by application 項, 打開對應(yīng)的數(shù)組,可以設(shè)置多個字體,在Item0中 輸入fontTest.ttf。
這個時候再執(zhí)行[UIFont familyNames],新加的字體就存在于列表中,那么直接設(shè)置名字就可以設(shè)置上字體了。
3 通過CoreText綁定字體
第二種方式基本基本就可以滿足大部分的需求,只有一個問題,就是字體包大小不一定,幾十兆到幾百兆不等,隨著其他資源包一起打進ipa會讓包變得很大,尤其是有的業(yè)務(wù)需要很多的字體包,那么肯定是需要動態(tài)網(wǎng)絡(luò)下載的,這個動態(tài)下載的字體文件目前蘋果開放的接口是無法動態(tài)添加配置信息到info.plist的。這個時候就需要CoreText接口動態(tài)綁定到內(nèi)存中。
當然,這里需要引入CoreText框架
#import < CoreText/CoreText.h> +(UIFont*)doGetCustomFontWithPath:(NSString*)path size:(CGFloat)size { if (!path) { return [UIFont systemFontOfSize:21]; } // NSString *path2 = [path stringByAppendingString:@"1"]; NSURL *fontUrl = [NSURL fileURLWithPath:path]; // [[NSFileManager defaultManager] copyItemAtPath:path toPath:path2 error:nil]; CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)fontUrl); CGFontRef fontRef = CGFontCreateWithDataProvider(fontDataProvider); CGDataProviderRelease(fontDataProvider); CTFontManagerRegisterGraphicsFont(fontRef, NULL); NSString *fontName = CFBridgingRelease(CGFontCopyPostScriptName(fontRef)); UIFont *font = [UIFont fontWithName:fontName size:size]; CGFontRelease(fontRef); return font; }
總結(jié)
以上所述是小編給大家介紹的iOS設(shè)置字體的三種方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
淺談iOS 關(guān)于小數(shù)精確計算(NSDecimalNumber)
本篇文章主要介紹了淺談iOS 關(guān)于小數(shù)精確計算(NSDecimalNumber),具有一定的參考價值,有興趣的可以了解一下2017-08-08iOS利用AVPlayer播放網(wǎng)絡(luò)音樂的方法教程
最近工作中遇到了一個需求,需要做一個在線音樂類的APP,通過一段時間的努力實現(xiàn)了,所以這篇文章主要給大家介紹了關(guān)于iOS利用AVPlayer播放網(wǎng)絡(luò)音樂的方法教程,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05iOS開發(fā) widget構(gòu)建詳解及實現(xiàn)代碼
這篇文章主要介紹了iOS開發(fā) widget構(gòu)建詳解的相關(guān)資料,并附實例代碼,需要的朋友可以參考下2016-11-11