Невозможно установить пользовательский шрифт для UILabel в XCode
Я не могу установить пользовательский шрифт для UILabel в XCode.
Вот что я попробовал:
Скачать шрифт "JennaSue" - http://www.dafont.com/jenna-sue.font
Откройте "app-info.plist" в папке "Supporting Files"
Добавить новую строку в список с помощью ключа "Шрифты, предоставляемые приложением"
В этом массиве добавьте "JennaSue.ttf"
Используйте это в коде так:
self.someLabel.font = [UIFont fontWithName:@"JennaSue" size:14];
И ничего не происходит - шрифт по умолчанию виден.
Зачем? Что я делаю неправильно? Как я могу это исправить?
9 ответов
Убедитесь, что ваш шрифт находится в Bundle Resources. По какой-то причине Xcode не импортирует пользовательский шрифт должным образом большую часть времени:
У меня работает шрифт:
Пример кода: здесь
- Перейти к вашему проекту
info.plist
файл, - Щелкните правой кнопкой мыши и выберите
Add row
, - Тип
Fonts provided by application
в новом ряду, - Введите желаемое имя шрифта в качестве элементов для этого ключа.
- Перетащите файл шрифта в проект,
- Примените его к тексту, который вы хотите:
someLabel.font = [UIFont fontWithName:@"JennaSue" size: 12.0];
Я думаю, что вы пропустили шаг 5 там.
Обновление: при выполнении шага 5 не забудьте проверить метки для копирования фактического файла в каталог проекта:
Не забудьте очистить свой проект, нажав "command+alt+shift+K" (IRRC!), А затем перейдите к
а затем перейдите к этапам сборки вашего проекта и убедитесь, что вы можете видеть .ttf
file file среди файлов ресурсов:
PS В данный момент я не на своем Mac, поэтому я использовал скриншоты из этого урока. Вот почему я выделил ненужные строки для вашей проблемы.
Проверьте этот код:
NSArray *names = [UIFont familyNames];
NSLog(@"Font FamilyNames : ");
for (NSString *name in names) {
NSLog(@"Font Family: %@",name);
NSArray *fontFaces = [UIFont fontNamesForFamilyName:name];
for (NSString *fname in fontFaces) {
NSLog(@" %@",fname);
}
}
self.someLabel.font = [UIFont fontWithName:@"use correct name" size:self.someLabel.font.pointSize];
и используйте то же имя, напечатанное с NSLog.
После добавления пользовательского шрифта в Xcode не забудьте добавить шрифт в plist.Project settings
> Info
> Custom IOS target properties
Добавить недвижимость
Fonts provided by application
и введите свой собственный шрифт (имя файла шрифта). Тогда вы можете использовать этот пример кодаself.someLabel.font = [UIFont fontWithName:@"JennaSue" size:14];
Обратите внимание: убедитесь, что вы используете правильное имя шрифта в коде. Для этого вы должны добавить этот шрифт в книгу шрифтов вашего Mac, открыть книгу шрифтов, выбрать этот шрифт и проверить правильный шрифт имени.
Надеюсь это поможет
Отображается ли файл в Compile Source сейчас... если да, то у вас может быть неправильное имя шрифта... иногда имена шрифтов отличаются от их имени файла... попробуйте запустить
for (NSString *familyName in [UIFont familyNames])
{
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName])
{
NSLog(@"%@", fontName);
}
}
эти строки кода... вы сможете увидеть фактическое имя шрифта и использовать это имя вместо
Вот ответ @Ritu в Swift 2. Просто поместите это в ваш AppDelegate или в метод viewDidLoad вашего View Controller:
let names = UIFont.familyNames()
for name in names {
print("Font Family: \(name)")
let fontFaces = UIFont.fontNamesForFamilyName(name)
for fname in fontFaces {
print(" \(fname)")
}
}
Все имена ваших шрифтов будут в журнале консоли, просто скопируйте и вставьте нужный код в свой код.
Я использовал следующий код, и это сделано
UILabel * lblTest = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 200, 100)];
lblTest.font = [UIFont fontWithName:@"JennaSue" size:25.0];
lblTest.text = @"Hello World";
[self.view addSubview:lblTest];
и если вы все еще не работаете, просматривая вашу системную книгу шрифтов и ищите этот шрифт и этот шрифт, вы должны использовать его
также попробуйте это lblTest.font = [UIFont fontWithName:@"Jenna Sue" size:25.0];
self.someLabel.font = [UIFont fontWithName:@"JennaSue.ttf" size:self.someLabel.font.pointSize];
Шрифт может быть поврежден или что-то. Я попробовал решения, предоставленные Gabriel.Massana & Neeku, и это сработало на некоторых шрифтах. Попробуйте добавить шрифт на ваш Mac. Если это показало проблему проверки, скорее всего, это не сработает в вашем приложении. Надеюсь это поможет