Невозможно установить пользовательский шрифт для 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 не импортирует пользовательский шрифт должным образом большую часть времени:

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

У меня работает шрифт:

введите описание изображения здесь

Пример кода: здесь

  1. Перейти к вашему проекту info.plist файл,
  2. Щелкните правой кнопкой мыши и выберите Add row,
  3. Тип Fonts provided by application в новом ряду,
  4. Введите желаемое имя шрифта в качестве элементов для этого ключа.
  5. Перетащите файл шрифта в проект,
  6. Примените его к тексту, который вы хотите:

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. Если это показало проблему проверки, скорее всего, это не сработает в вашем приложении. Надеюсь это поможет

Другие вопросы по тегам