国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

詳解iOS設置字體的三種方式

2020-07-26 02:20:53
字體:
來源:轉載
供稿:網友

有時候項目需要顯示一些非系統的字體達到一些UI的效果,目前設置字體有三種方式,默認方式、bundle方式,coreText方式。

1 默認方式

這種方式就是正常的字體設置方式

label.font = [UIFont fontwithname:@”Blazed” size:42]; 

至于第一個參數的名字,可以通過以下方法輸出所有字體名字列表

[UIFont familyNames]

只要名字列表中存在的,都可以用這種方式關聯到對應的字體上。

2 綁定自定義的字體包

其實第二種方式和第一種方式在代碼上是一樣的,依舊是通過名字設置字體

label.font = [UIFont fontwithname:@”Blazed” size:42];

只是要想使用往上下載的字體文件,先將字體文件加到系統的字體目錄中。

具體操作如下:

1 下載目標的字體文件并添加到工程中,名字為fontTest.ttf

2 在info.plist中,添加 Fonts provided by application 項, 打開對應的數組,可以設置多個字體,在Item0中 輸入fontTest.ttf。

這個時候再執行[UIFont familyNames],新加的字體就存在于列表中,那么直接設置名字就可以設置上字體了。

3 通過CoreText綁定字體

第二種方式基本基本就可以滿足大部分的需求,只有一個問題,就是字體包大小不一定,幾十兆到幾百兆不等,隨著其他資源包一起打進ipa會讓包變得很大,尤其是有的業務需要很多的字體包,那么肯定是需要動態網絡下載的,這個動態下載的字體文件目前蘋果開放的接口是無法動態添加配置信息到info.plist的。這個時候就需要CoreText接口動態綁定到內存中。

當然,這里需要引入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;}

總結

以上所述是小編給大家介紹的iOS設置字體的三種方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵台县| 忻州市| 广昌县| 高雄县| 东阳市| 台前县| 三河市| 方山县| 阳高县| 鹤壁市| 永春县| 扎囊县| 万盛区| 商城县| 三江| 平果县| 博湖县| 龙游县| 玉龙| 响水县| 霍城县| 南宁市| 玛曲县| 永安市| 安岳县| 西藏| 都匀市| 双桥区| 万全县| 阜南县| 大埔区| 伽师县| 逊克县| 盈江县| 高清| 慈溪市| 连州市| 丘北县| 绵竹市| 金沙县| 永定县|