Przede wszystkim zakładam, że SpriteKit nie robi żadnej różnicy.
- Potrzebujesz swojej czcionki w .otf lub .ttf skopiowanej do projektu. Na przykład w Supporting Files.
- Musisz edytować plik .plist . Dodaj klucz „Czcionki dostarczane przez aplikację” do pliku plist oraz w pozycji 0 skopiuj dokładną nazwę pliku skopiowanej czcionki do plików pomocniczych z rozszerzeniem. Na przykład: „JosefinSansStd-Light_0.otf”
- Upewnij się, że czcionka zaimportowana do aplikacji jest pakowana do samej aplikacji. Zrób to, wybierając Cel , następnie Fazy Budowy , a następnie Kopiuj Zasoby Paczki . Jeśli nie widzisz tam swojej czcionki, przeciągnij ją z plików pomocniczych .
Na koniec chciałbyś wyświetlić listę wszystkich czcionek po uruchomieniu aplikacji, aby zobaczyć użyteczną nazwę czcionki. Zrobisz to za pomocą tego małego fragmentu kodu:
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);
}
Wyszukaj swoją czcionkę w wydrukowanych wynikach, na przykład wyszukałbym „Josefin” i zobaczyłbym, że rzeczywista nazwa czcionki to „JosefinSansStd-Light”. Następnie wystarczy użyć tej czcionki przez:
UIFont *customFont = [UIFont fontWithName:@"JosefinSansStd-Light" size:20];
W iOS8 dodajesz swoje czcionki bezpośrednio do projektu i są one widoczne w kreatorze interfejsu. Zmodyfikuj kod, aby uwzględnić to, ale programowo ustawiając czcionkę dla systemu iOS7 i wybierając ją w konstruktorze interfejsu xCode6. PS. Kreator interfejsu w xCode6 podaje poprawną nazwę czcionki, którą możesz skopiować i wkleić do poniższego kodu.
#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;
}
Mam nadzieję, że to pomoże.