Пользовательские шрифты Xcode 4.3

Я пытаюсь использовать этот шрифт в моем проекте, но это не сработает. Я добавил файл .ttf в свой проект и добавил его имя в MyApp-Info.plist под ключ: Шрифты, предоставленные приложением. Затем я попробовал это:

 [_titleLabel setFont:[UIFont fontWithName:@"chalkboard" size:_titleLabel.font.pointSize]];

Я также проверил, действительно ли имя шрифта является "доской", и это так. Отображаемый шрифт по-прежнему Helvetica, только меньше. Где могла быть проблема? Заранее спасибо.

Ответ 1

Вам нужно использовать имя шрифта, а не имя файла. Имя шрифта находится внутри файла ttf.

Здесь вы можете найти имена шрифтов для iOS: http://iosfonts.com/

Этот код отобразит все ваши имена шрифтов в вашем приложении, поместит их где-нибудь в viewDidLoad на главный контроллер, запустит приложение, а затем в консоли найдет правильное имя для шрифта.

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]);
    }
}

Обновление.

Вы также можете щелкнуть правой кнопкой мыши файл шрифта в Finder, получить Info и скопировать полное имя. Но это не всегда 100%.

Ответ 2

Ответ на Flinks - удобный инструмент для проверки правильности загрузки ваших шрифтов.

Выполните следующие действия:

[_titleLabel setFont:[UIFont fontWithName:@"chalkboard" size:_titleLabel.font.pointSize]];

Убедитесь, что ваши шрифты включены в ваш комплект:

  • Нажмите на свой проект
  • Перейдите к build phases
  • Под 'Copy Bundle Resources', убедитесь, что ваши шрифты включены.

Работал для меня:)

Ответ 3

Xcode 4.3.1 Пользовательский шрифт имеет проблему. Потому что, когда я создаю новый проект и пытаюсь добавить пользовательские шрифты в Xcode 4.2.1, проблем нет.

Я делал несколько раз. Интересно...

Ответ 4

По моему опыту, не все "все" шрифты совместимы. Большинство работ, но вы столкнетесь с несколькими шрифтами, которые по какой-то причине не будут распознаваться с помощью кода, как бы вы ни старались... Просто голова для всех, у кого есть проблемы, просто попробуйте другой шрифт!

Ответ 5

  • Включите свои шрифты в проект XCode.
  • Удостоверьтесь, что theyre включен в закладку Target Membership in File Inspector
  • Включить шрифт в Название проектa > Фаза сборки > Ресурсы копирования ресурсов
  • Включите пользовательские шрифты iOS в свой прикладной слой. Добавьте новую строку под названием "Шрифты, предоставляемые приложением", и укажите в качестве параметра имя и расширение шрифта в качестве параметра.
  • Найдите имя шрифта.
  • Используйте UIFont и укажите имя шрифта.

    UILabel * headingLabel = [[UILabel alloc] initWithFrame: CGRectMake (10, 290, 300, 30)];
     headingLabel.text = @ "ДОБРО ПОЖАЛОВАТЬ",
     headingLabel.font = [UIFont fontWithName: @ "Arvo" размер: 14.0];

Источник: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/

Ответ 6

Не все шрифты, которые вы импортировали, работают. Просто попробуйте протестировать другой шрифт. Если он работает, то он не распознается Xcode. Просто помните, что это должно быть в вашем файле plist проекта, и оно должно быть расширением, например ".otf" или ".ttf" в plist. А также добавьте его в "Копировать ресурсы Bundle" под цель