#objective-c #ios #cocoa-touch #fonts
#objective-c #iOS #cocoa-touch #шрифты
Вопрос:
Я прочитал доступные семейства шрифтов по [UIFont familyNames]
, но у меня есть разные списки на разных устройствах (но с одной и той же версией iOS). Кто-нибудь может мне сказать, включают ли шрифты, перечисленные с помощью приведенного выше метода, пользовательские шрифты, предоставляемые другими установленными приложениями, или это только шрифты, поставляемые с iOS?
Ответ №1:
Да, в нем отображаются все шрифты в вашем приложении, включая добавленные вами пользовательские шрифты. Вот более короткий код для перечисления всех шрифтов:
Objective-C
for (NSString *familyName in [UIFont familyNames]){
NSLog(@"Family name: %@", familyName);
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"--Font name: %@", fontName);
}
}
Swift 2
for familyName:AnyObject in UIFont.familyNames() {
print("Family Name: (familyName)")
for fontName:AnyObject in UIFont.fontNamesForFamilyName(familyName as! String) {
print("--Font Name: (fontName)")
}
}
Swift 3
for familyName:String in UIFont.familyNames {
print("Family Name: (familyName)")
for fontName:String in UIFont.fontNames(forFamilyName: familyName) {
print("--Font Name: (fontName)")
}
}
Ответ №2:
Вот правильный фрагмент для перечисления всех шрифтов:
// List all fonts on iPhone
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; indFamily)
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; indFont)
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
}
Ответ №3:
Вы найдете список всех встроенных шрифтов в iOS, для сборки которых не требуется никакого дополнительного класса, здесь : Список доступных шрифтов iOS
Комментарии:
1. Теперь эта ссылка разорвана
Ответ №4:
Грубер опубликовал ссылку на шрифты, включенные некоторое время назад: Шрифты iOS
Редактировать: сайт, на который он ссылается, является iosfonts.com
Ответ №5:
Я полагаю, что это только шрифты, поставляемые с iOS. Любые пользовательские шрифты, которые вам нужны, чтобы найти соответствующие файлы .otf
или .ttf
и включить этот файл в ресурс вашего проекта.
Я говорю это, потому что я хотел использовать HelveticaNeue-UltraLight
шрифт. Они перечислены в iOS, и вы видите этот параметр шрифта в Xcode. Но при выборе ничего не происходит. Чтобы это сработало, мне пришлось выполнить описанное выше и поместить в HelveticaNeue-UltraLight
файл шрифта.
Ответ №6:
Пожалуйста, попробуйте этот код:https://github.com/zynga/FontLabel/
для проверки доступных шрифтов iOS:
for (indFamily=0; indFamily<[familyNames count]; indFamily){
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:[UIFont fontNamesForFamilyName:[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; indFont){
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
}
[fontNames release];