2009-06-14 19 views
6

Chciałbym użyć czcionek, które nie są częścią systemu operacyjnego iPhone. Widziałem gry, które używają niestandardowych czcionek. Mogę zainstalować czcionki, tworzyć obrazy dla każdego z nich w Photoshopie, a następnie używać tych zdjęć w aplikacji na iPhone'a. Jednak nie sądzę, że jest to praktyczny sposób postępowania. Jeśli chcesz zmienić kolor lub odcień (z powodu tła) lub rozmiaru, będę musiał przeprojektować każdą czcionkę, której używam. Czy jest lepszy sposób to zrobić?Używanie czcionek innych niż iPhone

Przeczytałem tę Can I embed a custom font in an iPhone application? i pobrałem aplikację z etykietami czcionek o otwartym kodzie źródłowym. Jednak najczęściej ulega awarii, gdy próbuję używać określonych czcionek. W odniesieniu do ostatniego komentarza dotyczącego używania UIFont z fontWithName: size, to z pewnością nie działa. Twoja zmienna czcionki będzie zerowa. Lista wszystkich dostępnych czcionek pokazuje, dlaczego - żadna z czcionek niestandardowych nie znajduje się na liście.

Przeczytałem również How do I include a font with my iPhone application?, który zdecydowanie nie działa. Taki sam jak ostatni komentarz w powyższym linku.

+0

Wiele gier użyj własnego renderowania czcionek. –

+0

Czy potrzebujesz renderowania czcionek OpenGL? lub chcesz użyć niestandardowych czcionek w typowej aplikacji Cocoa-Touch? – Goles

Odpowiedz

7

Prawidłowa odpowiedź jest użycie FontLabel, który można znaleźć na GitHub. http://github.com/zynga/FontLabel

Użyłem tego kodu w kilku prawdziwych projektach i jest absolutnie fantastyczny.

UPDATE:

Jako iOS 3.2 (iPad tylko) & iOS 4 na iPhone, można zapakować czcionek TTF w Twojej aplikacji pakietu. Po wprowadzeniu ich do pliku Info.plist za pomocą klucza UIAppFonts.

instrukcje krok

Trzy tutaj: http://kgriff.posterous.com/45359635

+0

Jak powiedział @David Dunham, gry zazwyczaj używają innego rodzaju renderowania czcionek, zwanego renderowaniem czcionek bitmapowych. W rzeczywistości pokazuje współrzędne z obrazu, a nie z wektorów matematycznych i jest ograniczona do rozmiaru określonego na obrazie. –

0

To niestety nie jest natychmiastowa odpowiedź, ale wydaje się, że w przyszłości będzie można zawierać niestandardowe czcionki jako część swojej aplikacji:

UIAppFonts (Array - iPhone OS) określa dowolną aplikację -dostarczone czcionki, które powinny być udostępniane za pomocą normalnych mechanizmów. Każda pozycja w tablicy jest ciągiem zawierającym nazwę pliku czcionki (w tym rozszerzenie nazwy pliku), która znajduje się w pakiecie aplikacji. System ładuje określone czcionki i udostępnia je do użytku przez aplikację po uruchomieniu tej aplikacji.

Niestety, działa to tylko w systemie iPhone OS 3.2, który jest specyficzną dla iPada. Wydaje się bardzo prawdopodobne, że ta funkcja będzie dostępna w przyszłych wydaniach iPhone OS.

Link: http://developer.apple.com/iPhone/library/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW18

(była to jedyna dokumentacja publicznego udało mi się znaleźć na stronie Apple)

3

Rozwiązaniem jest dodanie nową właściwość „czcionki dostarczone przez zastosowanie” do swojego pliku Info.plist.

Następnie można użyć niestandardowej czcionki, takiej jak zwykły UIFont.

2

To jest całkiem proste.

Dołączasz swój ttf do pakietu aplikacji. Do aplikacji dodajesz klucz Fonts provided by application/UIAppFonts, jest to tablica nazw plików dla czcionek, które dołączasz (w tym rozszerzenie), np.:

enter image description here

Można użycie czcionki dość łatwo za pomocą UIFont:

self.label.font = [UIFont fontWithName:@"Wingdings" size:23.0f]; 

To działa na wszystkich wersjach iOS od 3.2, w tym na iPhone z iOS 4.

Powiązane problemy