ПРОГРАММИРОВАНИЕ ПОД IPHONE, IPAD OBJECTIVE-C часть 2

6. Работа со шрифтами

Добавление в приложение свиох шрифтов

Операционная система iOS поддерживает широкий набор шрифтов. Но кому-то это может показаться недостаточным. А кто-то захочет сделать свое приложение уникальным и создать для него свои шрифты. Я не буду рассказывать о том как их создавать, в интернете существует много статей на эту тему. В этой статье я опишу механизм добавления и использования шрифта, котый не включен в стандартный набор шрифтов iOS.

Для детального рассмотрения работы с кастомными шрифтами создадим новый проект на основе представления (View-based Application) и назовем его CustomFont. Далее нам потребуется сам шрифт. Для примера я взял шрифт с вот этого сайта. Мне показался удобный этот сайт тем, что на нем есть шрифты для Mac OS. В качестве подопытного кролика я использовал вот этот шрифт. Скачайте его и добавьте в проект (перед добавлением не забудьте распаковать).

Теперь нужно «сказать» нашему проекту, что мы в него добавили шрифт. Для этого откройте файл с настройками проекта. Это *.plist-файл, который имеет название ИмяПроекта-Info.plist в нашем случае — CustomFont-Info.plist. Добавьте к существующим настройкам еще одну с именем Fonts provided by application. Практически, все сводится к добавлению записи в *.plist-файл с определенным ключом. Как добавлять записи в такого типа файлы описано в статье Знакомство с файловой системой iOS. У каждого поля файла настроек есть тип, если вы все сделали правильно — то этому полю автоматически присваивается тип NSArray.

Слева от поля есть треугольник — это означает (такой треугольник имеют массивы и словари). Если вы нажмете на треугольник — раскроется список элементов массива, в нашем случае поля Fonts provided by application. Пока что в нем только один элемент с пустым значением. Впишите в значение этого элемента имя шрифта (с расширением).


Теперь наша программа знает о существовании этого шрифта и сможет его применять. Чтобы это увидеть добавим в интерфейсUILabel. Как это делать — подробно описано в примере Знакомство с GUI. Разница лишь в том, что наша надпись будет иметь имя info, а не result.

К сожалению собственные шрифты нельзя установить в интерфейсе. Поэтому нам прийдется дописать небольшую часть кода. Откройте реализацию класса CustomFontViewController, раскомментируйте и измените метод viewDidLoad:

<code data-result="[object Object]">- (void)viewDidLoad
{
    [super viewDidLoad];

    [info setFont:[UIFont fontWithName:@"BaroqueScript" size:15.0f]];
}</code>

 

Здесь мы устанавливаем полю info собственный шрифт и задаем размер этого шрифта. Если вы хотите, чтобы размер шрифта применялся тот, который выбран в интерфейсе — код следует изменить вот так:

<code data-result="[object Object]">- (void)viewDidLoad
{
    [super viewDidLoad];

    [info setFont:[UIFont fontWithName:@"BaroqueScript" size:info.font.pointSize]];
}</code>

 

Теперь в качестве параметра size будет передаваться текущий размер шрифта.

Логично понять, что для добавления большего количества шрифтов следует добавить сам шрифт в проект и добавить его имя в поле Fonts provided by application файла CustomFont-Info.plist.

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