0
我想在我的應用程序中使用動態字體。我在蘋果的sample code中發現,他們每次啓動都會下載一個xml,即使我之前已經下載了字體。iOS中的動態字體下載需要每次啓動時下載com_apple_MobileAsset_Font.xml?
爲什麼?這個文件的用法是什麼?
這個示例代碼中是否存在任何錯誤,或者如果我想使用此功能,我需要接受此錯誤。
我想在我的應用程序中使用動態字體。我在蘋果的sample code中發現,他們每次啓動都會下載一個xml,即使我之前已經下載了字體。iOS中的動態字體下載需要每次啓動時下載com_apple_MobileAsset_Font.xml?
爲什麼?這個文件的用法是什麼?
這個示例代碼中是否存在任何錯誤,或者如果我想使用此功能,我需要接受此錯誤。
示例代碼通常旨在爲主要開發人員提供正確的方向,而不是爲他們提供功能完善的優化解決方案。
您應該在下載它之後保存字體數據,然後在啓動時您可以使用這樣的代碼在本地檢索它。
+ (void)loadFontAtPath:(NSString *)path {
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
if (!data) {
NSLog(@"Failed to load font. Data at path is null");
return;
}
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (!CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error);
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
}
從那裏,你將與[UIFont fontWithName:size:]
稱之爲正常。
另外從URL請求可能對您有用。 CTFontManagerRegisterFontsForURL