欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解iOS設(shè)置字體的三種方式

 更新時(shí)間:2019年04月02日 08:33:15   作者:coder_qi  
這篇文章主要介紹了iOS設(shè)置字體的三種方式,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

有時(shí)候項(xiàng)目需要顯示一些非系統(tǒng)的字體達(dá)到一些UI的效果,目前設(shè)置字體有三種方式,默認(rèn)方式、bundle方式,coreText方式。

1 默認(rèn)方式

這種方式就是正常的字體設(shè)置方式

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

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

[UIFont familyNames]

只要名字列表中存在的,都可以用這種方式關(guān)聯(lián)到對(duì)應(yīng)的字體上。

2 綁定自定義的字體包

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

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

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

具體操作如下:

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

2 在info.plist中,添加 Fonts provided by application 項(xiàng), 打開對(duì)應(yīng)的數(shù)組,可以設(shè)置多個(gè)字體,在Item0中 輸入fontTest.ttf。

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

3 通過CoreText綁定字體

第二種方式基本基本就可以滿足大部分的需求,只有一個(gè)問題,就是字體包大小不一定,幾十兆到幾百兆不等,隨著其他資源包一起打進(jìn)ipa會(huì)讓包變得很大,尤其是有的業(yè)務(wù)需要很多的字體包,那么肯定是需要?jiǎng)討B(tài)網(wǎng)絡(luò)下載的,這個(gè)動(dòng)態(tài)下載的字體文件目前蘋果開放的接口是無法動(dòng)態(tài)添加配置信息到info.plist的。這個(gè)時(shí)候就需要CoreText接口動(dòng)態(tài)綁定到內(nèi)存中。

當(dāng)然,這里需要引入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è)置字體的三種方式,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 淺談iOS 關(guān)于小數(shù)精確計(jì)算(NSDecimalNumber)

    淺談iOS 關(guān)于小數(shù)精確計(jì)算(NSDecimalNumber)

    本篇文章主要介紹了淺談iOS 關(guān)于小數(shù)精確計(jì)算(NSDecimalNumber),具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • iOS開發(fā)之清除緩存功能的實(shí)現(xiàn)

    iOS開發(fā)之清除緩存功能的實(shí)現(xiàn)

    現(xiàn)在的絕大多數(shù)應(yīng)用中都存在著清楚緩存的功能,形形色色,各有千秋,所以小編現(xiàn)為大家介紹一種最基礎(chǔ)的清除緩存的方法,有需要的可以參考借鑒。下面來一起看看吧。
    2016-09-09
  • iOS 9 Core Spotlight搜索實(shí)例代碼

    iOS 9 Core Spotlight搜索實(shí)例代碼

    本文主要講解 iOS 9 Core Spotlight,在 IOS 開發(fā)的時(shí)候有時(shí)候會(huì)用到搜索功能,這里給大家一個(gè)實(shí)例作為參考,有需要的小伙伴可以參考下
    2016-07-07
  • iOS開發(fā)刪除storyboard步驟詳解

    iOS開發(fā)刪除storyboard步驟詳解

    這篇文章主要為大家介紹了iOS系列學(xué)習(xí)之刪除storyboard步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • iOS常用調(diào)試方法之靜態(tài)分析詳解

    iOS常用調(diào)試方法之靜態(tài)分析詳解

    這篇文章主要給大家介紹了關(guān)于iOS常用調(diào)試方法之靜態(tài)分析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • iOS masonry的使用方法

    iOS masonry的使用方法

    這篇文章主要介紹了iOS masonry的基本使用方法的相關(guān)資料,文章還介紹了CocoaPods的安裝過程,需要的朋友可以參考下面文字內(nèi)容
    2021-09-09
  • iOS利用AVPlayer播放網(wǎng)絡(luò)音樂的方法教程

    iOS利用AVPlayer播放網(wǎng)絡(luò)音樂的方法教程

    最近工作中遇到了一個(gè)需求,需要做一個(gè)在線音樂類的APP,通過一段時(shí)間的努力實(shí)現(xiàn)了,所以這篇文章主要給大家介紹了關(guān)于iOS利用AVPlayer播放網(wǎng)絡(luò)音樂的方法教程,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • iOS自定義鍵盤切換效果

    iOS自定義鍵盤切換效果

    這篇文章主要為大家詳細(xì)介紹了iOS自定義鍵盤切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • iOS開發(fā) widget構(gòu)建詳解及實(shí)現(xiàn)代碼

    iOS開發(fā) widget構(gòu)建詳解及實(shí)現(xiàn)代碼

    這篇文章主要介紹了iOS開發(fā) widget構(gòu)建詳解的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下
    2016-11-11
  • IOS 中KVC的使用方法實(shí)例詳解

    IOS 中KVC的使用方法實(shí)例詳解

    這篇文章主要介紹了IOS 中KVC的使用方法實(shí)例詳解的相關(guān)資料,這提供具體使用方法,希望能幫助到大家,需要的朋友可以參考下
    2017-09-09

最新評(píng)論