iOS. шрифтът е наличен на симулатора, но не и на устройството

Използвам персонализиран шрифт в приложението си и се натъкнах на много странен проблем. Шрифтът е наличен в симулатора, но не е наличен на действителен iPad.

1 Не бъркам името на шрифта и името на файла. Името на файла е bitdust2.ttf, докато името на шрифта е BitDustTwo и така го наричам и на симулатора е добре.

2 Не е въпрос на чувствителност към главни и малки букви. Шрифтът наистина не е наличен на устройството. Знам тази причина, когато правя това:

NSLog(@"%@", [UIFont familyNames]);

виждам, че на симулатора моят шрифт е включен в масива familyNames, но липсва на iPad. Какво не е наред? Сблъсквали ли сте се с подобен проблем?


person Andrey Chernukha    schedule 03.07.2013    source източник
comment
Не всички шрифтове, налични на mac, са налични на устройства с iOS. Защо си изненадан?   -  person Abizern    schedule 03.07.2013
comment
имаш предвид, че не мога да добавя определени типове персонализирани шрифтове?   -  person Andrey Chernukha    schedule 03.07.2013
comment
Проверете в устройството коя версия на iOS има и в симулатора коя версия на iOS има, ако устройството има по-ниска версия на iOS, тогава симулатора, тогава някои добавени шрифтове или функции няма да работят в по-стара версия на iOS.   -  person Gyanendra    schedule 03.07.2013
comment
Проверихте ли, че файлът с шрифт bitdust2.ttf е добавен към целта и е копиран в пакета на приложението?   -  person Martin R    schedule 03.07.2013
comment
@MartinR го направи отговор, за да мога да го приема. Вие помогнахте   -  person Andrey Chernukha    schedule 03.07.2013
comment
@AndreyChernukha: Готово. Радвам се, че помогна.   -  person Martin R    schedule 03.07.2013


Отговори (5)


(От коментар по-горе:) Проверете дали файлът с шрифтове „bitdust2.ttf“ е добавен към целта и е копиран в пакета на приложението.

person Martin R    schedule 03.07.2013

Симулаторът е, както е заглавен, симулатор, а не истински емулатор. Симулаторът изпълнява API със същите имена, но тъй като симулаторът работи на OS X, а не на iOS, симулаторът често има повече функционалност. Например класовете на медийния плейър в симулатора поддържат повече типове файлове (кодеци), отколкото на устройството, тъй като OS X поддържа повече кодеци от iOS. На симулатора имате повече налични шрифтове, отколкото на устройството.

Ето още подробности за вграждане на шрифтове в приложение за iOS:

Има лесен начин за използване на персонализирани шрифтове в iOS 4.

  1. Добавете вашия файл с шрифт (например Chalkduster.ttf) към папката Resources на проекта в XCode.
  2. Отворете info.plist и добавете нов ключ, наречен UIAppFonts. Типът на този ключ трябва да бъде масив.
  3. Добавете вашето персонализирано име на шрифт към този масив, включително разширение (Chalkduster.ttf).
  4. Сега можете да използвате [UIFont fontWithName:@"Chalkduster" size:16] във вашето приложение.

Важно е да не пропускате нито една стъпка. Ако все още имате проблеми, отидете в раздела Build Phases на вашия проект в XCode и под раздела Copy Bundle Resources се уверете, че вашият файл с шрифт е включен. Ако не, добавете го.

person Marcus Adams    schedule 03.07.2013

Проверете версията на операционната система на вашето устройство, както и поддръжката му за версии на iOS. Персонализираният шрифт, който сте използвали, трябва да е съвместим с iOS на вашето устройство.

Вижте този отговор. Може да се наложи да имате алтернативен персонализиран шрифт, в случай че не се поддържа.

person NightFury    schedule 03.07.2013

Току-що имах същия проблем и след като проверих, че всичко е правилно:

  • Шрифтът се добавя към правилния ключ в info.plist „Шрифтове, предоставени от приложението“
  • Шрифтът се добавя към проект -> информация под същия ключ като info.plist (това просто означава, че съм запазил plist)
  • Файлът с шрифтове се добавя към проекта
  • Файлът с шрифтове е в папката на проекта
  • Проект -> цел -> Фази на изграждане -> Копиране на пакетни ресурси: съдържа моя файл с шрифтове
  • Файлът е отметнат за свързване с цел

Трябваше да изтегля файла отново и да го добавя отново.. когато го направих, името на файла беше променено... така че мисля, че .ttf файлът беше повреден

person A'sa Dickens    schedule 25.04.2014

Ще трябва да вградите шрифта в приложението; инструкциите са тук.

person user2536988    schedule 03.07.2013