2013-07-30 5 views
1

Редактировать: Я понял! Ответ размещен ниже. Спасибо JSD!Как добавить пользовательский шрифт в мое приложение?

Должно быть, что-то не хватает, потому что я думал, что это довольно простой процесс. Я уже скопировал шрифт в папку проекта. Я пытаюсь использовать шрифт в UILabel на ячейки таблицы с помощью этого кода: Это, кажется, не работает

UILabel *cellTitle = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 40)]; 
cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Black" size:50]; 
[cell.contentView addSubview:cellTitle]; 

. Текст появляется, но не с пользовательским шрифтом. Что мне не хватает?

EDIT: Очевидно, если я использую этот код вместо

cellTitle.font = [UIFont fontWithName:@"Source Sans Pro" size:50]; 

Это работает, но это только с использованием последнего шрифта в моем массиве моего файла Plist, который только Регулярная версия шрифт. Кто-нибудь когда-либо имел эту проблему раньше?

Ни один из этих кодов не работает либо:

cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Bold" size:50]; 
cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Regular" size:50]; 

Это шрифт в моей шрифта книги:

enter image description here

Plist файл:

enter image description here

+2

Это для iOS6. – DJSK

+0

Это не имеет значения, и вы должны всегда включать все свои материальные предположения в свод ваших вопросов. – bioffe

+0

Возможно, я ошибаюсь, но шрифты не должны быть .ttf – JeffRegan

ответ

1

Я только что получил работу !!! Благодаря JSD для управления мной в правильном направлении. По-видимому, проблема заключается в том, как XCode переименовывает варианты шрифтов, которые находятся в одном семействе.

Использование имени книги шрифтов не работает !!!

Вам действительно нужно видеть, как Xcode называет шрифты.Для того, чтобы сделать это, вы должны выполнить команду журнала:

NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Source Sans Pro"]); 

дал мне это:

enter image description here

Этот код работает:

cellTitle.font = [UIFont fontWithName:@"SourceSansPro-Black" size:50]; 
+1

Вам нужно использовать имя шрифта PostScript. Вы можете увидеть это в Font Book, используя Get Info – nielsbot

2

Убедитесь, что вы добавили свое имя шрифта в файл info.plist

+0

Да, это тоже. Шрифт является частью семьи, но я использую только черный стиль для своего приложения. – DJSK

+1

, если вы скопировали файл в свой проект, а затем правильно добавили имя шрифта в plist, он должен работать. Вот как я это делаю, и он работает для меня. Убедитесь, что имя шрифта в plist точно соответствует имени вашего файла шрифта. – lionserdar

+0

Странно, мне нужно удалить 'Black' от имени, но я получаю только последний шрифт в моем массиве plist. Если я переупорядочу свой массив, он использует только последний шрифт. Я не могу назвать шрифт своими именами. – DJSK

1

Добавьте шрифт в свой проект. Затем в вашем файле info.plist добавьте раздел с именем Fonts provided by application как тип массива, и каждый шрифт указан в его собственной строке ... Item0, Item1 и т. Д.

Когда вы загружаете шрифт в код, вы будет загружать его, как обычно: [myUILabel setFont:[UIFont fontWithName:@"MyFontname" size:14]];. Обычно вы будете использовать имя postscript, которое можно открыть с помощью приложения FontBook на вашем Mac.

1

Основываясь на использовании пользовательских шрифтов, ваше имя шрифта plist должно соответствовать тому, как шрифт отображается в Шрифтовой книге, который также должен соответствовать методу fontWithName. В вашем случае я бы ожидал увидеть Source Sans Pro Black в обоих местах, в частности Source Sans Pro Black.otf в вашем plist и cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Black" size:50]; в вашем коде.

+0

Да, это сумасшествие. Я не могу назвать ни одного из шрифтов своими именами только фамилию шрифта. Проблема с этим заканчивается тем, что отображающий любой шрифт является последней записью в моем массиве в моем plist. Я в тупике. Я предполагаю, что это должна быть проблема с этим конкретным шрифтом или чем-то еще. – DJSK

+1

Ваша последняя проблема после шрифта или после размещения в plist? Под этим я подразумеваю, что если вы поместите другой шрифт, последний на вашем plist, работает ли ИТ вместо обычной версии? – Dan

+0

Да. Если я переместим жирный шрифт к последнему списку. Это то, что я получаю. Единственный способ заставить шрифт Black работать - переместить его в последний список. Это не сработает, потому что мне в итоге нужны все трое. Мне интересно, нужно ли мне экспортировать шрифты в другой формат или что-то в этом роде. – DJSK

Смежные вопросы