IOS添加自定義字體實(shí)例詳解
IOS添加自定義字體
字體是軟件開(kāi)發(fā)中個(gè)性化的一個(gè)重要元素,系統(tǒng)自帶了很多豐富的字體,但有時(shí)候并不能滿足個(gè)性化的需求,這時(shí)候可以向工程中添加自定義的系統(tǒng)字體,然后就可以像使用系統(tǒng)字體一樣使用。字體文件最常用的為ttf等格式。
導(dǎo)入自定義字體過(guò)程很簡(jiǎn)單:添加資源包到工程->在info.plist文件中注冊(cè)字體->在工程Bundle Resource中復(fù)制字體資源包->代碼檢測(cè)查詢加入的字體并使用
添加資源包
addFile添加字體資源包或者直接將字體包拖到工程資源文件夾下:
info.plist文件中注冊(cè)字體
在工程的info.plist屬性列表中添加Fonts provided by application
數(shù)組屬性并在其下添加要加入的自定義字體項(xiàng)。注意,這里在plist文件中寫(xiě)的是文件的全稱(chēng),包括文件后綴,文件的名字我們是可以隨便改的,但建議用本來(lái)的字體族名,例如這里是:KristenITC,字體族名是不會(huì)變的,之后具體代碼中使用的時(shí)候是用的字體族名而不是自定義的文件名。本來(lái)的字體族名可以右鍵查看字體文件的詳細(xì)信息,里面的全稱(chēng)是本來(lái)的字體族名,而名稱(chēng)是自定義的。
復(fù)制資源包到Bundle Resource
檢測(cè)是否成功加入字體
在具體使用之前,我們可以先通過(guò)UIFont類(lèi)提供的函數(shù)打印出系統(tǒng)所有的字體列表,并找到我們更添加的字體看是否添加成功,還可以具體看到我們的資源包有哪些具體的字體樣式,例如該字體族的斜體、粗體、粗斜體等等。打印字體族列表的代碼如下:
/** * 檢查自定義字體族是否成功加入 */ // 取出系統(tǒng)安裝了的所有字體族名 NSArray *familyNames = [UIFont familyNames]; NSLog(@"系統(tǒng)所有字體族名:%@", familyNames); // 打印字體族的所有子字體名(每種字體族可能對(duì)應(yīng)多個(gè)子樣式字體,例如每種字體族可能有粗體、斜體、粗斜體等等樣式) for(NSString *familyName in familyNames) { // 字體族的所有子字體名 NSArray *detailedNames = [UIFont fontNamesForFamilyName:familyName]; NSLog(@"\n字體族%@的所有子字體名:%@", familyName,detailedNames); }
這里可以從字體組列表找到我們剛添加的字體族KristenITC:
和字體族KristenITC下的具體字體樣式,這里只有一種也是默認(rèn)的一種:KristenITC-Regular:
使用字體
確定字體加入系統(tǒng)之后就可以像自帶的系統(tǒng)字體一樣直接使用了:
// 設(shè)置label的字體和大小(這里直接使用字體族名也是可以的,有默認(rèn)的子字體樣式,也可以根據(jù)需求具體到自字體比如這里的:KristenITC-Regular) [_label setFont:[UIFont fontWithName:@"KristenITC" size:35.0]];
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
阿里數(shù)據(jù)iOS端啟動(dòng)速度優(yōu)化心得
本篇文章給大家詳細(xì)分析了阿里數(shù)據(jù)iOS端啟動(dòng)速度優(yōu)化的知識(shí)點(diǎn)以及心得,對(duì)此有興趣的朋友參考學(xué)習(xí)下吧。2018-02-02iOS10 Xcode8開(kāi)發(fā)適配問(wèn)題及解決方案
前段時(shí)間升級(jí)了Xcode8,整體來(lái)說(shuō)對(duì)OC的影響不大,但是還是會(huì)有這樣那樣的問(wèn)題,下面小編給大家總結(jié)了遇到的適配問(wèn)題及解決方案,對(duì)xcode8 ios10適配問(wèn)題感興趣的朋友一起看看吧2016-11-11swift3.0網(wǎng)絡(luò)圖片緩存原理簡(jiǎn)析
這篇文章主要為大家簡(jiǎn)析了swift3.0網(wǎng)絡(luò)圖片緩存原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09關(guān)于iOS導(dǎo)航欄返回按鈕問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了關(guān)于iOS導(dǎo)航欄返回按鈕問(wèn)題的解決方法,對(duì)iOS自定義backBarButtonItem的點(diǎn)擊事件進(jìn)行介紹,感興趣的小伙伴們可以參考一下2016-05-05MAC 系統(tǒng)安裝java并配置環(huán)境變量
這篇文章主要介紹了MAC 系統(tǒng)安裝java并配置環(huán)境變量的相關(guān)資料,需要的朋友可以參考下2017-03-03ios實(shí)現(xiàn)UITableView之間圓角和間隙
這篇文章主要為大家詳細(xì)介紹了ios實(shí)現(xiàn)UITableView之間圓角和間隙,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08淺述iOS11 Xcode 9 按住command 單擊 恢復(fù)到從前(直接跳轉(zhuǎn)到定義)
這篇文章主要介紹了 iOS11 Xcode 9 按住command 單擊 恢復(fù)到從前(直接跳轉(zhuǎn)到定義)的相關(guān)資料,需要的朋友可以參考下2017-10-10iOS+PHP注冊(cè)登錄系統(tǒng) iOS部分(下)
這篇文章主要介紹了iOS+PHP注冊(cè)登錄系統(tǒng)的iOS部分,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12