Подтвердить что ты не робот

Кто-нибудь имел успех с использованием пользовательских шрифтов otf на iPhone?

Похоже, есть несколько рабочих решений для использования пользовательских шрифтов истинного типа (ttf) на iPhone, в первую очередь Можно ли встроить собственный шрифт в приложение для iPhone? Однако этот метод не поддерживает шрифты открытого типа (otf).

Кто-нибудь может найти способ использовать шрифты otf?

4b9b3361

Ответ 1

Должен ли использоваться шрифт otf на устройстве или вы можете преобразовать его в ttf? Сравнительно просто преобразовать шрифт OTF в шрифт TTF с помощью инструмента, такого как fontforge, возможно, это было бы легким решением.

Ответ 2

Для моего собственного проекта я хотел использовать шрифт opentype, и я в основном использовал этот метод:

Добавьте свой собственный файл шрифта в свой проект, используя XCode в качестве ресурса Добавьте ключ в свой файл info.plist(Шрифты, предоставленные приложением) Для каждого шрифта, который у вас есть, введите полное имя файла шрифта (включая расширение) Сохранить info.plist затем используйте это для своих меток (например:)

UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];

В моем случае @"Harrowprint" было имя файла без расширения, а не имя шрифта, предоставленное Finder.

Мой шрифт был otf, и это сработало... поэтому я думаю, что это поддерживалось... или мне повезло. Я проведу еще один шрифт... и держу вас в курсе.

ссылки:

Ответ 3

У меня тоже были проблемы с этим. Вот что сработало для меня:

  • Скопируйте файлы шрифтов в Ресурсы.
  • Посмотрите, что файлы шрифтов находятся в разделе "Build Phases" → "Copy Bundle Resources" (Xcode поместил их туда для меня, когда я добавил файлы в ресурсы. Если по какой-то причине их там нет, добавьте их.
  • Добавьте имена файлов в файл info.plist, как описано выше. Включите расширения.
  • Откройте "Шрифт", выберите шрифт и "Предпросмотр-Шрифт" и посмотрите "Семейство", например "Foo"
  • Поместите это в свой код где-нибудь и установите контрольную точку для проверки массива имен: NSArray *names = [UIFont fontNamesForFamilyName:@"Foo";
  • Запустите приложение и, когда он сломается, щелкните правой кнопкой мыши по переменной "имена" в отладчике. Это покажет вам имена шрифтов для использования, например.: <__NSCFArray 0xe9c4da0>( Foo-100Italic, Foo-100 )
    Обратите внимание, что мои имена шрифтов не показывались правильно в другом месте, а не в имени файла или в Шрифтовой книге.
  • Вам должно быть хорошо: myLabel.font = [UIFont fontWithName:@"Foo-100Italic" size:24];

Ответ 5

Что касается первого ответа - решение правильное (т.е. просто преобразовать шрифт в TTF), но предлагаемое программное обеспечение представляет собой сложную проблему для компиляции и установки. Вместо этого я просто сделал быстрый поиск в Google и использовал это вместо: http://www.freefontconverter.com/, и это сработало отлично.

(обязательно добавьте шрифт в файл info.plist)

Ответ 6

Я исследовал это насквозь, и это лучший метод, который я нашел:

1) Преобразуйте файл шрифта в TTF с помощью этого онлайн-инструмента: http://www.freefontconverter.com/

2) Добавьте файлы TTF в свой проект

3) Сделайте несколько конфигураций в файле info.plist:

3.1) Редактировать info.plist как исходный код (щелкните правой кнопкой мыши по файлу → открыть как → исходный код)

3.2) Добавьте это:

 <key>UIAppFonts</key>
 <array>
  <string>font1.ttf</string>
  <string>font2.ttf</string>
  ...etc...
 </array>

3.3) Ваш info.plist должен иметь это сейчас:

info plist should look like this now

4) Используйте новые шрифты так же, как и системные шрифты:

[UIFont fontWithName: @ "font1" size: 16.0];

(Обратите внимание на ".ttf" в имени шрифта)