Игровые приложения для детей и взрослых скучны без веселых букв и цифр.
Строгий iPhone кодекс не давал разработчику до версии iOS 3.2 стандартных способов использовать свои шрифты в приложениях.
Все спасались нарисованными в редакторе картинками цифр и букв или чужими библиотеками.
Как теперь обстоит дело с custom fonts для разработчиков iPhone поделок?
Осторожно! Под хабракатом 1 картинка, 1анекдот сомнение и 2 фрагмента кода.
1) Скачать на свой минимак понравившийся шрифт из любого ресурса бесплатных ttf фонтов, коих легион.
2) Запустить xCode, открыть проект, в папку Resource правой кнопкой мыши добавить (как существующие) скачанные фонты, например ch1.ttf. Операция ничем не отличается от добавления в проект png картинок или wav файлов.
3) Найти в проекте файл *-info.plist, добавить в него строку Fonts provided by application (выбирается из списка), в правой колонке напротив этой строки в поле Item вписываем названия файлов — фонтов, столько сколько захотим — например item0 | ch1.ttf и item1 | ch2.ttf.
В принципе все. Помните, что имя фонта находится внутри ttf файла и не совпадает с именем файла — для просмотра имени щелкните по файлу дважды мышкой. Например внутри моего файла ch1.ttf находится шрифт с именем Cheri Linea.
Вставляем в код программмно надпись типа UILabel или кнопку UIButton, устанавливаем фонт следующей функцией
Получаем красивую надпись, миллион скачек и покупаем папе Карло тысячу новых курток.
Лечится использованием GraphicsServices фреймверка следующим способом
Лечится порождением нового класса
К сожалению среди бесплатных фонтов нет шрифта, которым одинаково красиво рисовались имена китайских, русских и прочих игроков.
Лечится деньгами? Шрифты можно купить или заказать? Ответа не знаю.
Буду счастлив услышать полезные советы и замечания от разработчиков.
Жму кнопку ОПУБЛИКОВАТЬ с опаской — за подобный предыдущий пост меня забанили на год.
Строгий iPhone кодекс не давал разработчику до версии iOS 3.2 стандартных способов использовать свои шрифты в приложениях.
Все спасались нарисованными в редакторе картинками цифр и букв или чужими библиотеками.
Как теперь обстоит дело с custom fonts для разработчиков iPhone поделок?
Осторожно! Под хабракатом 1 картинка, 1
Как получить такую картинку программно
1) Скачать на свой минимак понравившийся шрифт из любого ресурса бесплатных ttf фонтов, коих легион.
2) Запустить xCode, открыть проект, в папку Resource правой кнопкой мыши добавить (как существующие) скачанные фонты, например ch1.ttf. Операция ничем не отличается от добавления в проект png картинок или wav файлов.
3) Найти в проекте файл *-info.plist, добавить в него строку Fonts provided by application (выбирается из списка), в правой колонке напротив этой строки в поле Item вписываем названия файлов — фонтов, столько сколько захотим — например item0 | ch1.ttf и item1 | ch2.ttf.
В принципе все. Помните, что имя фонта находится внутри ttf файла и не совпадает с именем файла — для просмотра имени щелкните по файлу дважды мышкой. Например внутри моего файла ch1.ttf находится шрифт с именем Cheri Linea.
Вставляем в код программмно надпись типа UILabel или кнопку UIButton, устанавливаем фонт следующей функцией
[mylabel setFont: [UIFont fontWithName:@"Cheri Linea" size:20]];
Урра!Получаем красивую надпись, миллион скачек и покупаем папе Карло тысячу новых курток.
Минусы данного подхода
Минус 1. Не работает на iPhone c iOs<3.2
Лечится использованием GraphicsServices фреймверка следующим способом
BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
return newFontCount;
}
Минус 2. Шрифты не работают с Интерфейс Билдером
Лечится порождением нового класса
// LabelMyFont.h
#import <uikit /UIKit.h>
@interface LabelMyFont : UILabel {
}
@end
// LabelMyFont.m
#import "LabelMyFont.h"
@implementation LabelMyFont
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder: decoder]) {
[self setFont: [UIFont fontWithName: @"Cheri Linea" size: self.font.pointSize]];
}
return self;
}
@end
Минус 3. Невозможно запрячь в одну упряжку Английские, Китайские и Русские фонты
К сожалению среди бесплатных фонтов нет шрифта, которым одинаково красиво рисовались имена китайских, русских и прочих игроков.
Лечится деньгами? Шрифты можно купить или заказать? Ответа не знаю.
Буду счастлив услышать полезные советы и замечания от разработчиков.
Жму кнопку ОПУБЛИКОВАТЬ с опаской — за подобный предыдущий пост меня забанили на год.