蘋果其實(shí)不僅僅只有系統(tǒng)自帶的字體腿箩,還可以有選擇性的動(dòng)態(tài)下載所需的字體簸喂。
像娃娃體难菌、行楷、麗黑……等常見字體都支持柜去。
具體支持列表見(iOS7):
那么問題來了灰嫉,既然蘋果系統(tǒng)支持這么多字體,怎么下載嗓奢?怎么使用讼撒?
先看唐大的一篇文章,寫的比較詳細(xì):
http://blog.devtang.com/2013/08/11/ios-asian-font-download-introduction
當(dāng)然蔓罚,看蘋果的SampleCode更直接:
不過有一個(gè)問題椿肩,按照蘋果的SampleCode使用后,下載的字體只在當(dāng)前的程序周期中有效豺谈,重啟后又不認(rèn)上次的下載的字體了郑象,打印所有字體也發(fā)現(xiàn)沒有上次下載的字體。
打印字體代碼:
NSArray* familys = [UIFont familyNames];
for (int i = 0; i<[familys count]; i++) {
NSString* family = [familys objectAtIndex:i];
NSLog(@"\r\n\r\nFontfamily:%@\r\n=====",family);
NSArray* fonts = [UIFont fontNamesForFamilyName:family];
for (int j = 0; j<[fonts count]; j++) {
NSLog(@"%@",[fonts objectAtIndex:j]);
}
}
字體文件雖然保存在了
/private/var/mobile/Library/Assets/com_apple_MobileAsset_Font
在 Mac 或是模擬器上茬末,用kCTFontURLAttribute可以獲得字體的絕對(duì)路徑厂榛,但是在 iOS 上是不可能的盖矫。因此,只好在需要時(shí)重新執(zhí)行一遍CTFontDescriptorMatchFontDescriptorsWithProgressHandler击奶。
另外辈双,這里有字體相關(guān)的官方介紹:《Using Fonts with TextKit》
https://developer.apple.com/videos/play/wwdc2013/223/
http://devstreaming.apple.com/videos/wwdc/2013/223xex5xsgdfh1ergtjrqwoghbj/223/223.pdf