蘋果其實(shí)不僅僅只有系統(tǒng)自帶的字體,還可以有選擇性的動態(tài)下載所需的字體。
像娃娃體、行楷、麗黑……等常見字體都支持。
具體支持列表見(iOS7):
那么問題來了,既然蘋果系統(tǒng)支持這么多字體,怎么下載?怎么使用?
先看唐大的一篇文章,寫的比較詳細(xì):
http://blog.devtang.com/2013/08/11/ios-asian-font-download-introduction
當(dāng)然,看蘋果的SampleCode更直接:
不過有一個問題,按照蘋果的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可以獲得字體的絕對路徑,但是在 iOS 上是不可能的。因此,只好在需要時重新執(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