国产探花免费观看_亚洲丰满少妇自慰呻吟_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設置字體的三種方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 格尔木市| 平果县| 公安县| 伊金霍洛旗| 南宫市| 大名县| 漯河市| 平乡县| 靖江市| 沅江市| 仁怀市| 丰都县| 连州市| 彰武县| 中江县| 高要市| 库尔勒市| 三原县| 鄱阳县| 且末县| 新郑市| 香港 | 石城县| 太湖县| 巫溪县| 彰武县| 南城县| 德江县| 宜黄县| 长丰县| 屯昌县| 德庆县| 贵定县| 富顺县| 民县| 右玉县| 鹤峰县| 云梦县| 綦江县| 潮安县| 莆田市|