Приложения ios могут загружать следующие шрифты, если необходимо
В списке шрифтов iOS 7, расположенном здесь, http://support.apple.com/kb/HT5878, внизу находится раздел с заголовком "приложения могут загружать следующие шрифты, если необходимо".
Что это значит?
Как включить эти шрифты и как это отличается от пользовательских шрифтов?
Ответы
Ответ 1
Это интересно, это почти недокументированная функция, но, похоже, это нормально использовать и не будет отклонять ваше приложение. Просто пытаясь провести исследование, это привело меня к этому вопросу и не к чему. Все, что я смог найти, было документировано, это пример кода, показывающий, как его использовать: DownloadFont.
Демонстрирует, как загружать шрифты по запросу на iOS 6 и более поздних версиях.
На iOS 6 мы добавили возможность загрузки приложений по требованию. Помимо шрифтов, установленных с iOS 6, приложения могут при необходимости устанавливать список дополнительных шрифтов.
Указанные шрифты уже лицензированы Apple для использования в iOS, однако они не поставляются со стандартной прошивкой iOS из-за использования дополнительного дискового пространства. Я бы предположил, что это будет продолжаться так, как Apple предоставляет новые шрифты (если только часть пользовательского интерфейса ОС не использует). Кроме того, в отличие от добавления шрифтов с помощью ключа UIAppFonts
в вашем Info.plist, после загрузки шрифта, он доступен для всех приложений.
Ответ 2
Вот простой пример того, как асинхронно загружать шрифт и устанавливать его на UITextView
.
- (void)asynchronouslySetFontName:(NSString *)fontName toTextView:(UITextView *)textView {
CGFloat size = 24.0f;
UIFont *font = [UIFont fontWithName:fontName size:size];
if (font && ([font.fontName compare:fontName] == NSOrderedSame || [font.familyName compare:fontName] == NSOrderedSame)) {
textView.font = font;
return;
}
NSMutableDictionary *attrs = [NSMutableDictionary dictionaryWithObject:fontName forKey:kCTFontNameAttribute];
CTFontDescriptorRef desc = CTFontDescriptorCreateWithAttributes((__bridge CFDictionaryRef)attrs);
NSMutableArray *descs = [NSMutableArray array];
[descs addObject:(__bridge id)desc];
CFRelease(desc);
__weak UITextView *weakTextView = textView;
CTFontDescriptorMatchFontDescriptorsWithProgressHandler((__bridge CFArrayRef)descs, NULL, ^(CTFontDescriptorMatchingState state, CFDictionaryRef progressParameter) {
if (state == kCTFontDescriptorMatchingDidFinish) {
dispatch_async(dispatch_get_main_queue(), ^{
weakTextView.font = [UIFont fontWithName:fontName size:size];
});
}
return YES;
});
}
И вот список всех загружаемых шрифтов. http://iosfontlist.com