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