Прежде всего я предполагаю, что SpriteKit не имеет никакого значения.
- Вам нужно скопировать шрифт в формате .otf или .ttf в свой проект. Например, в вспомогательных файлах.
- Вам необходимо отредактировать файл .plist . Добавьте ключ «Шрифты, предоставленные приложением» в свой список и в элементе 0 скопируйте точное имя файла шрифта, который вы скопировали в вспомогательные файлы с расширением. Например: «JosefinSansStd-Light_0.otf».
- Убедитесь, что шрифт, который вы импортировали в свое приложение, упаковывается в само приложение. Для этого выберите Target , затем Build Phases , затем Copy Bundle Resources . Если вы не видите там свой шрифт, перетащите его из вспомогательных файлов .
Наконец, вы хотите перечислить все свои шрифты, когда приложение запустится, просто чтобы увидеть подходящее имя для вашего шрифта. Вы сделаете это с помощью этого небольшого фрагмента кода:
NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}
Найдите свой шрифт в распечатанных результатах, например, я бы поискал «Josefin» и увидел бы, что фактическое имя шрифта - «JosefinSansStd-Light». После этого вам нужно будет использовать только этот шрифт:
UIFont *customFont = [UIFont fontWithName:@"JosefinSansStd-Light" size:20];
В iOS8 вы добавляете свои шрифты прямо в проект, и они видны в построителе интерфейса. Измените свой код, чтобы учесть это, но программно установите шрифт для iOS7 и выберите его в построителе интерфейса xCode6. PS. Конструктор интерфейса в xCode6 дает вам правильное имя шрифта, которое вы можете скопировать и вставить в приведенный ниже код.
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
if(SYSTEM_VERSION_LESS_THAN(@"8.0"))
{
UIFont *customFont = [UIFont fontWithName:@"OpenSans-Light" size:32];
self.registerLabel.font = customFont;
}
Надеюсь, это поможет, ура.