Могу ли я встроить собственный шрифт в приложение для iPhone?
Этот вопрос относится к iOS до 3.2. Начиная с версии 3.2, эта функциональность легко достижима, используя ответ samvermette ниже, и я изменил Accepted Answer (с команды на samvermette), чтобы отразить это. Я не могу отдать должное обоим ответам (кроме положительных голосов), но они оба хороши.
Я хотел бы, чтобы приложение включало пользовательский шрифт для рендеринга текста, загружал его, а затем использовал его со стандартным UIKit
такие элементы, как UILabel
, Это возможно?
Я нашел ниже ссылки:
- http://discussions.apple.com/thread.jspa?messageID=8304744
- http://forums.macrumors.com/showthread.php?t=569311
но это потребовало бы от меня рендеринга каждого символа самостоятельно, что слишком похоже на тяжелую работу, особенно для многострочного текста.
Я также нашел посты, в которых прямо говорится, что это невозможно, но без обоснования, поэтому я ищу окончательный ответ.
РЕДАКТИРОВАТЬ - не удалось -[UIFont fontWithName:size:]
эксперимент
Я скачал Harrowprint.tff (скачал отсюда) и добавил его в свой каталог ресурсов и в проект. Затем я попробовал этот код:
UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];
что привело к исключению. Просмотр файла TTF в Finder подтвердил, что имя шрифта было Harrowprint.
РЕДАКТИРОВАТЬ - до сих пор было несколько ответов, в которых говорилось, что я должен прочитать документацию по X или Y. Я много экспериментировал со всем этим и ничего не получил. В одном случае X оказался актуальным только на OS X, а не на iPhone. Следовательно, я назначаю вознаграждение за этот вопрос, и я назначу вознаграждение первому человеку, который предоставит ответ (используя только документированные API-интерфейсы), который ответит достаточной информацией, чтобы заставить это работать на устройстве. Работа на симуляторе тоже была бы бонусом.
РЕДАКТИРОВАТЬ - Похоже, что награда автоматически присуждается за ответ с наибольшим количеством голосов. Интересно. Никто на самом деле не дал ответ, который решил вопрос в том виде, в котором он был задан - решение, которое включает в себя кодирование ваших собственных UILabel
Подкласс не поддерживает перенос слов, что является для меня важной функцией - хотя, думаю, я мог бы расширить его, чтобы сделать это.
32 ответа
iOS 3.2 и более поздние версии поддерживают это. Прямо из документа " Что нового в iPhone OS 3.2":
Поддержка пользовательских шрифтов
Приложения, которые хотят использовать пользовательские шрифты, теперь могут включать эти шрифты в свой пакет приложений и регистрировать эти шрифты в системе, включив ключ UIAppFonts в их файл Info.plist. Значением этого ключа является массив строк, идентифицирующих файлы шрифтов в комплекте приложения. Когда система видит ключ, она загружает указанные шрифты и делает их доступными для приложения.
После того, как шрифты были установлены в Info.plist
Вы можете использовать свои пользовательские шрифты как любой другой шрифт в IB или программно.
На форумах Apple для разработчиков существует постоянная тема:
https://devforums.apple.com/thread/37824 (требуется вход в систему)
И вот отличное и простое учебное пособие из 3 шагов о том, как этого добиться (неработающая ссылка удалена)
- Добавьте свои собственные файлы шрифтов в свой проект, используя Xcode в качестве ресурса
- Добавьте ключ к вашему
Info.plist
файл называетсяUIAppFonts
, - Сделать этот ключ массивом
- Для каждого имеющегося шрифта введите полное имя файла шрифта (включая расширение) в качестве элементов
UIAppFonts
массив - Сохранить
Info.plist
- Теперь в вашем приложении вы можете просто позвонить
[UIFont fontWithName:@"CustomFontName" size:12]
чтобы получить собственный шрифт для использования с вашими UILabels и UITextViews и т. д.
Также: убедитесь, что шрифты есть в ваших ресурсах Copy Bundle.
Изменить: Начиная с iOS 3.2, эта функциональность встроена. Если вам требуется поддержка до 3.2, вы все еще можете использовать это решение.
Я создал простой модуль, который расширяет UILabel
и обрабатывает загрузку файлов.ttf. Я выпустил его с открытым исходным кодом под лицензией Apache и поместил его на github .
Важные файлы FontLabel.h
а также FontLabel.m
,
Он использует часть кода из ответа Genericrich.
Просмотрите источник здесь.
ИЛИ ЖЕ
Скопируйте ваш файл шрифта в ресурсы
Добавьте ключ к вашему
Info.plist
файл называется UIAppFonts. ("Шрифты, предоставленные приложением)Сделать этот ключ массивом
Для каждого имеющегося шрифта введите полное имя файла шрифта (включая расширение) в качестве элементов массива UIAppFonts.
Сохранить
Info.plist
Теперь в вашем приложении вы можете просто позвонить
[UIFont fontWithName:@"CustomFontName" size:15]
чтобы получить пользовательский шрифт для использования с вашимUILabels
а такжеUITextViews
, так далее…
В iOS 4 есть простой способ использовать пользовательские шрифты.
- Добавьте свой файл шрифта (например,
Chalkduster.ttf
) в папку ресурсов проекта в XCode. - открыто
info.plist
и добавьте новый ключ с именемUIAppFonts
, Тип этого ключа должен быть массивом. - Добавьте свое имя шрифта в этот массив, включая расширение (
Chalkduster.ttf
). - Теперь вы можете использовать
[UIFont fontWithName:@"Chalkduster" size:16]
в вашем приложении.
К сожалению, IB не позволяет инициализировать метки с помощью пользовательских шрифтов. Посмотрите этот вопрос, чтобы решить эту проблему. Мое любимое решение заключается в использовании пользовательских UILabel
подкласс:
@implementation CustomFontLabel
- (id)initWithCoder:(NSCoder *)decoder
{
if (self = [super initWithCoder: decoder])
{
[self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
}
return self;
}
@end
В Info.plist добавьте запись "Шрифты, предоставляемые приложением" и включите имена шрифтов в виде строк:
Fonts provided by application
Item 0 myfontname.ttf
Item 1 myfontname-bold.ttf
...
Затем убедитесь, что ваш шрифт включен:
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"%@", fontName);
}
}
Обратите внимание, что имя вашего файла ttf может не совпадать с именем, которое вы используете при установке шрифта для вашей метки (вы можете использовать приведенный выше код для получения параметра "fontWithName"):
[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];
редактировать: этот ответ больше не существует с iOS3.2; использовать UIAppFonts
Единственный способ, которым я смог успешно загрузить пользовательские UIFont
s через частную платформу GraphicsServices.
Следующее загрузит все .ttf
Шрифты в основном комплекте приложения:
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;
}
После загрузки шрифтов их можно использовать так же, как шрифты, предоставляемые Apple:
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];
GraphicsServices можно даже загрузить во время выполнения, если API исчезнет в будущем:
#import <dlfcn.h>
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.apple.GraphicsServices"];
const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
if (frameworkPath) {
void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
if (graphicsServices) {
BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
if (GSFontAddFromFile)
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
}
}
return newFontCount;
}
С iOS 8
+ и Xcode 6
+ вы можете сделать это легко. Вот шаги:
1) Перетащите ваш шрифт в Xcode
Вспомогательная папка Files. Не забудьте пометить ваше приложение в разделе Добавить к целям. С этого момента вы можете использовать этот шрифт в IB
и выберите его в палитре шрифтов.
2) Чтобы сделать этот шрифт доступным на вашем устройстве, откройте info.plist
и добавить Fonts provided by application
ключ. Он будет содержать ключ Item 0, вы должны добавить имя шрифта в качестве значения. Название шрифта может отличаться от вашего имени файла шрифта. Но сначала попробуйте добавить свое имя файла, в большинстве случаев это работает.
Если нет, эта статья всегда помогала мне.
Вот быстрый фрагмент кода из этой статьи, чтобы помочь вам найти название вашего шрифта.
func allFonts(){
for family in UIFont.familyNames(){
println(family)
for name in UIFont.fontNamesForFamilyName(family.description)
{
println(" \(name)")
}
}
}
РЕДАКТИРОВАТЬ
Я хочу упомянуть, что вам нужно добавить файлы шрифтов к фазам сборки вашей Target, Copy Bundle Resources. Без этого вы не увидите свой шрифт на устройстве. И это может привести к неожиданному поведению.
Например, я сталкиваюсь с bug
, когда UITextField
есть собственный шрифт, но этот шрифт не был в ресурсах Copy Bundle. И когда я перехожу к viewcontroller
с этим textfield
задержка около 4 секунд viewDidLoad
функция была вызвана. Устранение проблем со шрифтами устранило эту задержку. Итак, рекомендуем проверить это дважды. (rdar://20028250) Кстати, я не смог воспроизвести ошибку, но я уверен, что проблема была со шрифтом.
Я сделал это так:
Загрузите шрифт:
- (void)loadFont{
// Get the path to our custom font and create a data provider.
NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
// Create the font with the data provider, then release the data provider.
customFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
}
Теперь в вашем drawRect:
, сделайте что-то вроде этого:
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
// Get the context.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
// Set the customFont to be the font used to draw.
CGContextSetFont(context, customFont);
// Set how the context draws the font, what color, how big.
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
UIColor * strokeColor = [UIColor blackColor];
CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
CGContextSetFontSize(context, 48.0f);
// Create an array of Glyph's the size of text that will be drawn.
CGGlyph textToPrint[[self.theText length]];
// Loop through the entire length of the text.
for (int i = 0; i < [self.theText length]; ++i) {
// Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
}
CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, textTransform);
CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}
По сути, вам нужно выполнить некоторую грубую силу, перебирая текст и перебирая магическое число, чтобы найти свое смещение (здесь, смотрите, я использую 29) в шрифте, но это работает.
Кроме того, вы должны убедиться, что шрифт является юридически встраиваемым. Большинство из них не являются, и есть адвокаты, которые специализируются на таких вещах, так что будьте осторожны
Да, вы можете включить пользовательские шрифты. Обратитесь к документации по UIFont, в частности, fontWithName:size:
метод.
1) Убедитесь, что вы включили шрифт в папку ресурсов.
2) "Имя" шрифта не обязательно является именем файла.
3) Убедитесь, что у вас есть законное право использовать этот шрифт. Включая его в свое приложение, вы также распространяете его, и у вас должно быть на это право.
Если вы используете xcode 4.3
, вы должны добавить font
к Build Phase
под Copy Bundle Resources
, согласно Arne в теме, Custom Fonts Xcode 4.3. Это сработало для меня, вот шаги, которые я сделал для пользовательских шрифтов, чтобы работать в моем приложении:
- Добавьте шрифт в ваш проект. Я вытащил
OTF
(или жеTTF
) файлы в новую группу, которую я создал и принял выбор xcodecopying the files over to the project folder
, - Создать
UIAppFonts
массив с вашими шрифтами, перечисленными как элементы в массиве. Простоnames
, а не расширение (например, "GothamBold
","GothamBold-Italic
"). - Нажми на
project name
путь на вершинеProject Navigator
в левой части экрана. - Нажми на
Build Phases
вкладка, которая появляется в основной области xcode. - Расширить
Copy Bundle Resources
раздел и нажмите на"+"
добавить шрифт. - Выберите файл шрифта из файлового навигатора, который открывается при нажатии на
"+"
, - Сделайте это для каждого шрифта, который вам нужно
add to the project
,
Я бы порекомендовал следовать одному из моих любимых коротких руководств здесь: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ из которого исходит эта информация.
Шаг 1 - Перетащите ваш.ttf или.otf из Finder в ваш проект
ПРИМЕЧАНИЕ. - Обязательно установите флажок "Добавить к целям" в основной цели приложения.
Если вы забыли щелкнуть, чтобы добавить его к своей цели, щелкните файл шрифта в иерархии проекта и на правой боковой панели выберите основную цель приложения в разделе " Целевое членство ".
Чтобы убедиться, что ваши шрифты являются частью цели вашего приложения, убедитесь, что они отображаются в ваших ресурсах Copy Bundle в фазах сборки
Шаг 2 - Добавьте имена файлов шрифтов в свой Plist
Перейдите к пользовательским целевым свойствам iOS в разделе информации и добавьте ключ к элементам в этом разделе, который называется Fonts provided by application
(вы должны увидеть, что он появляется в качестве опции при вводе, и он будет настроен как массив. Нажмите маленькую стрелку, чтобы открыть элементы массива и введите имена добавленных вами файлов.ttf или.otf. чтобы ваше приложение знало, что это те файлы шрифтов, которые вам нужны
ПРИМЕЧАНИЕ. Если ваше приложение дает сбой сразу после этого шага, проверьте правильность написания добавленных здесь элементов.
Шаг 3 - Узнайте названия ваших шрифтов, чтобы вы могли называть их
Довольно часто имя шрифта, видимое вашим приложением, отличается от того, что вы думаете, оно основано на имени файла для этого шрифта, вставьте его в свой код и просмотрите журнал, который ваше приложение делает, чтобы увидеть, какое имя шрифта вызывать в вашем коде.
стриж
for family: String in UIFont.familyNames(){
print("\(family)")
for names: String in UIFont.fontNamesForFamilyName(family){
print("== \(names)")
}
}
Цель С
for (NSString* family in [UIFont familyNames]){
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family]){
NSLog(@" %@", name);
}
}
Ваш журнал должен выглядеть примерно так:
Шаг 4 - Используйте новый пользовательский шрифт, используя имя из шага 3
стриж
label.font = UIFont(name: "SourceSansPro-Regular", size: 18)
Цель С
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];
Вот пошаговая инструкция, как это сделать. Нет необходимости в дополнительной библиотеке или специальном кодировании.
http://shang-liang.com/blog/custom-fonts-in-ios4/
В большинстве случаев проблема заключается в шрифте, а не в методе. Лучший способ сделать это - использовать шрифт, который наверняка будет работать, например, verdana или geogia. Затем измените на нужный шрифт. Если это не работает, возможно, имя шрифта неправильное, или шрифт не является хорошо отформатированным шрифтом.
Очень легко добавить новый шрифт в ваше существующее приложение для iOS.
Вам просто нужно добавить шрифт, например, font.ttf в вашу папку ресурсов.
Откройте ваше приложение info.plist
, Добавьте новую строку как "Шрифты, предоставляемые приложением" и введите имя шрифта как font.ttf.
А при настройке шрифта делай как setFont:"corresponding Font Name"
Вы можете проверить, добавлен ли ваш шрифт или нет NSArray *check = [UIFont familyNames];
,
Он возвращает все шрифты, поддерживаемые вашим приложением.
Найдите TTF в поиске и "Получить информацию". Под заголовком "Полное имя:" он дал мне имя, которое я затем использовал с fontWithName
(Я просто скопировал и вставил точное имя, в этом случае расширение '.ttf' не было необходимости).
Это еще не вышло, но следующая версия cocos2d (2d каркас игры) будет поддерживать растровые шрифты переменной длины в виде карт персонажей.
http://code.google.com/p/cocos2d-iphone/issues/detail?id=317
У автора нет точной даты выпуска этой версии, но я видел публикацию, в которой указывалось, что это будет в следующем месяце или двух.
Одно важное замечание: вы должны использовать "имя PostScript", связанное со шрифтом, а не его полное имя или фамилию. Это имя часто может отличаться от обычного имени шрифта.
Следуйте за этим шагом
1) Скопируйте свой шрифт в свой проект
2) открой свой .plist
файл в режиме исходного кода...(Примечание - не открывать info.plist
)
3) До этого - щелкните правой кнопкой мыши на вашем шрифте и откройте его в fontforge или аналогичном редакторе и install
это в вашей системе, должно быть install
4) Введите это
<key>UIAppFonts</key>
<array>
<string>MyriadPro.otf</string>
</array>
5) Введите этот код в свой class .m
[lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];
Здесь lblPoints будут меняться с вашего UILabel
Готово!! Если ваш шрифт все еще не работает, сначала проверьте совместимость шрифтов
Я пробовал различные предложения на этой странице на iOS 3.1.2, и вот мои выводы:
Просто используя [UIFont fontWithName:size:]
со шрифтами в каталоге Resources не будет работать, даже если имя FOND задано с помощью FontForge.
[UIFont fontWithName:size:]
будет работать, если шрифты сначала загружаются с помощью GSFontAddFromFile. Но GSFontAddFromFile
не является частью iOS 3.1.2, поэтому он должен быть динамически загружен, как описано в @rpetrich.
Может быть, автор забыл дать шрифту имя Mac FOND?
- Откройте шрифт в FontForge, затем перейдите в Элемент> Информация о шрифте
- Существует опция "Mac", в которой вы можете установить имя FOND.
- Под File>Export Font вы можете создать новый ttf
Вы также можете попробовать опцию "Apple" в диалоговом окне экспорта.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не разработчик IPhone!
Я совмещал некоторые советы на этой странице с тем, что работает для меня в iOS 5.
Во-первых, вы должны добавить собственный шрифт в ваш проект. Затем вам нужно следовать совету @iPhoneDev и добавить шрифт в ваш файл info.plist.
После того, как вы это сделаете, это работает:
UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];
Однако вам необходимо знать название вашего шрифта в Postscript. Просто следуйте советам @Daniel Wood и нажимайте command-i, пока находитесь в FontBook.
Затем наслаждайтесь вашим собственным шрифтом.
Для iOS 3.2 и выше: используйте методы, предоставленные несколькими выше, а именно:
- Добавьте свой файл шрифта (например, Chalkduster.ttf) в папку ресурсов проекта в XCode.
- Откройте info.plist и добавьте новый ключ с именем UIAppFonts. Тип этого ключа должен быть массивом.
- Добавьте свой собственный шрифт в этот массив, включая расширение ("Chalkduster.ttf").
- использование
[UIFont fontWithName:@"Real Font Name" size:16]
в вашем приложении.
НО"Настоящее имя шрифта" не всегда то, что вы видите в Fontbook. Лучший способ - спросить ваше устройство, какие шрифты оно видит и каковы точные названия.
Я использую uifont-name-grabber, размещенный по адресу: uifont-name-grabber
Просто поместите нужные шрифты в проект xcode, добавьте имя файла в его список и запустите его на устройстве, для которого вы создаете, он отправит вам полный список шрифтов, используя имена, которые UIFont fontWithName:
надеется.
Лучшее решение - добавить новое свойство "Fonts provided by application
" на ваш info.plist
файл.
Затем вы можете использовать свой собственный шрифт, как обычно UIFont
,
Сначала добавьте шрифт в формате.odt к вашим ресурсам, в этом случае мы будем использовать DINEngschriftStd.otf, затем используйте этот код, чтобы назначить шрифт метке
[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];
Чтобы убедиться, что ваш шрифт загружен в проект, просто позвоните
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
В.plist вы должны объявить шрифт. Просто добавьте запись "Шрифты, предоставляемые приложением" и добавьте строку элемента 0 с названием шрифта (DINEngschriftStd.otf).
Уважать ATSApplicationFontsPath
Простая запись plist, которая позволяет вам включать файлы шрифтов в папку ресурсов вашего приложения, и они "просто работают" в вашем приложении.
Swift, кодовый способ: (работает также с swift 2.0)
Добавьте необходимые шрифты в ваш проект (как добавление изображений, просто перетащите в Xcode), убедитесь, что они нацелены на ваш проект
добавьте этот метод и загрузите пользовательские шрифты (рекомендуется в appDelegate didFinishLaunchingWithOptions
)
func loadFont(filePath: String) {
let fontData = NSData(contentsOfFile: filePath)!
let dataProvider = CGDataProviderCreateWithCFData(fontData)
let cgFont = CGFontCreateWithDataProvider(dataProvider)!
var error: Unmanaged<CFError>?
if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
print("Unable to load font: %@", errorDescription, terminator: "")
}
}
Пример использования:
if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
loadFont(fontPath)
}
Используйте шрифт:
UIFont(name: "My-Font", size: 16.5)
Существует новый способ использования пользовательских шрифтов, начиная с iOS 4.1. Он позволяет загружать шрифты динамически, будь то файлы из приложения, загруженные данные или что-то еще. Он также позволяет загружать шрифты по мере необходимости, тогда как старый метод загружает их все во время запуска приложения, что может занять слишком много времени, если у вас много шрифтов.
Новый метод описан в http://www.marco.org/2012/12/21/ios-dynamic-font-loading
Вы используете CTFontManagerRegisterGraphicsFont
функция, давая ему буфер с данными вашего шрифта. Это тогда доступно для UIFont
и веб-просмотров, как и в старом методе. Вот пример кода по этой ссылке:
NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
Вы можете добавить необходимые файлы "FONT" в папку ресурсов. Тогда иди в проект Info.plist
файл и используйте КЛЮЧ "Шрифты, предоставленные приложением" и значение как "ИМЯ ШРИФТА".
Затем вы можете вызвать метод [UIFont fontwithName:@"FONT NAME" size:12];
Да, вы можете использовать собственный шрифт в вашем приложении
пошагово следуя туда:
- Добавьте ваши собственные файлы шрифтов в ваш проект во вспомогательных файлах
- Добавьте ключ к вашему
Info.plist
файл называется UIAppFonts. - Сделать этот ключ массивом
- Для каждого имеющегося шрифта введите полное имя файла шрифта (включая расширение) в качестве элементов массива UIAppFonts.
- Сохранить
Info.plist
Теперь в вашем приложении вы можете просто позвонить[UIFont fontWithName:@"your Custom font Name" size:20]
чтобы получить пользовательский шрифт для использования с вашимUILabels
после применения этого, если вы не получаете правильный шрифт, вы дважды щелкаете по пользовательскому шрифту и внимательно видите, что название шрифта в верхней части подходит, и скопируйте этот шрифт, вставьте сюда [UIFont fontWithName:@" here past your Custom font Name" size:20]
я надеюсь, что вы получите правильный ответ
Хотя некоторые из приведенных выше ответов верны, я написал подробное наглядное руководство для людей, у которых все еще есть проблемы со шрифтами.
Решения выше, которые говорят вам, чтобы добавить шрифт к списку и использовать
[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];
правильные. Пожалуйста, используйте любой другой хакерский способ. Если вы все еще сталкиваетесь с проблемами при поиске имен шрифтов и их добавлении, вот учебник -
Да, вы можете использовать собственный шрифт в вашем приложении
пошагово следуя туда:
Добавьте ваши собственные файлы шрифтов в ваш проект во вспомогательных файлах
Добавьте ключ в файл Info.plist с именем UIAppFonts.
Сделать этот ключ массивом
Для каждого имеющегося шрифта введите полное имя файла шрифта (включая расширение) в качестве элементов массива UIAppFonts.
Сохранить Info.plist Теперь в вашем приложении вы можете просто вызвать [UIFont fontWithName:@"ваше имя нестандартного шрифта" размер:20], чтобы получить нестандартный шрифт для использования с вашими UILabels после применения этого, если вы не получаете правильный шрифт, тогда вы дважды щелкаете мышью. на пользовательский шрифт, и посмотрите внимательно имя шрифта верхней стороны идет и скопируйте этот шрифт, вставьте, здесь [UIFont fontWithName:@"здесь мимо вашего имени пользовательского шрифта" размер:20]
я надеюсь, что вы получите правильный ответ
Я сделал все возможное, но новые шрифты не появляются, поэтому я нашел решение:
При перетаскивании файлов fot (otf или ttf) НЕ забудьте установить флажок "Добавить к целям".
После этого ваш шрифт появится, и все будет работать нормально.