Пользовательские шрифты iPhone с чемоданом шрифтов - PullRequest
4 голосов
/ 05 июля 2010

Я пытаюсь использовать Font Suitcase для нестандартного шрифта в приложении iOS4, но безуспешно.

Я прочитал другие посты, в которых описано, как использовать пользовательские шрифты, поэтому скопировал чемодан в мой проект, добавил его в ресурсы и Info.plist ' Шрифты предоставлены массивом приложения и попытались использовать его как в Интерфейсном Разработчике, так и в коде. Но это не работает!

Все примеры, которые я нашел относительно пользовательских шрифтов, показывают использование их с файлами ttf или otf, но ничего с чемоданом. Это можно сделать? Если нет, как мне извлечь что-то из книги шрифтов в файловую структуру, которую можно использовать как собственный шрифт?

Ответы [ 3 ]

7 голосов
/ 08 марта 2011

У меня была такая же проблема, и я просто решил ее. Друг дал мне пару заархивированных шрифтов, я разархивировал, и затем размеры файлов равны нулю Кб, и я не смог установить их в Font Book. Так что я погуглил и обнаружил, что мой друг должен был использовать StuffIt Expander для архивирования. Поэтому он снова прислал мне файл, и я использовал StuffIt Expander для распаковки. После этого я смог установить шрифты в мою книгу шрифтов.

Тем не менее, шрифты все еще не могут использоваться в моем приложении iOS. Итак, вот что я сделал:

  1. Я узнал, что мне нужно конвертировать шрифт, поэтому я установил Fondu http://fondu.sourceforge.net/ Установка закончилась, сказав, что не удалось, но позже я все еще мог использовать.

  2. Тогда я понимаю, что мне нужна Rosetta для запуска Fondu, поэтому я посмотрел инструкции на этой странице. Получил компакт-диск Snow Leopard и установил дополнительный пакет http://www.macobserver.com/tmo/article/snow_leopard_installing_rosetta/

  3. Откройте терминал и перейдите в каталог, где находится ваш шрифт. Введите команду: фондю [файл шрифта] Затем вы получите подсказку с вопросом, хотите ли вы сохранить [файл шрифта] .pfb Выберите да.

  4. Теперь в вашем XCode добавьте файл pfb в ваш проект. Затем перейдите в info.plist и добавьте файл в UIAppFonts (включая расширение .pfb).

  5. Я тестировал шрифт в UITableViewCell

cell.textLabel.font = [UIFont fontWithName: @ "[font file]" size: 30]; // не включать расширение .pfb

И шрифт показывает нормально. Сначала я думал, что для iOS потребуется файл .ttf, но похоже, что .pfb тоже подойдет.

Надеюсь, это поможет.

Дополнительные советы по тестированию: После добавления массива plist UIAppFonts, как показано выше, добавьте точку останова в методе appDidFinishLaunchingWithOptions и в консоли типа

po [UIFont familyNames]

Появится список установленных шрифтов, поэтому поищите название семейства шрифтов. Скопируйте это и вставьте в это:

po [UIFont fontNamesForFamilyName:@"familyname"]

Это дает вам имя шрифта, на которое вы ссылаетесь в своем коде. Я не пробовал подход [font filename], но это дает вам имя, которое приложение использует для ссылки на нужный шрифт. Это важно, если шрифт содержит серию вариантов или у вас установлено несколько экземпляров из одного семейства. Например, у helvetica есть четыре варианта, поэтому вы можете выбрать правильный вариант следующим образом:

lblMyLabel.font = [UIFont fontWithName:@"fontname" size:lblMyLabel.font.pointSize]

1044 * Е.Г. *

lblMyLabel.font = [UIFont fontWithName:@"Helvetica-Oblique" size:lblMyLabel.font.pointSize]

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

0 голосов
/ 19 февраля 2019

Для этого решения не требуется Fondu или Rosetta, но оно включает в себя небольшое вырезание и вставку в приложение MacOS Terminal.

Довольно просто и бесплатно.

https://sittingduck.co.nz/2013/11/unpacking-the-suitcase/

0 голосов
/ 01 декабря 2010

Прежде всего включите инфраструктуру SystemConfiguration в ваш проект. А также добавьте файл ttf или otf согласно вашему требованию. Затем импортируйте файл dlfcn.h, чтобы делегировать файл реализации. И после этого вы должны вызвать функцию, как показано на рисунке alt text.

И тогда вы можете получить доступ к своему контроллеру, где бы вы ни хотели использовать пользовательский шрифт. Вам просто нужно передать шрифт в fontwithName: метод UIFont.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...