2012-04-21 9 views
24

W moim Info.plist dodałem klucz "czcionki dostarczone przez aplikację" i dodał EdwardianScriptITCStd.otf enter image description hereUIFont fontWithName zwraca nil

Ale gdy próbuję dostać tę czcionkę, zwraca nil:

NSLog(@"%@", [UIFont fontWithName:@"EdwardianScriptITCStd" 
           size:16.0f]); 

wydrukowałem rodziny czcionek za pomocą [UIFont familyNames] i go nie ma albo:

(
    Thonburi, 
    "Snell Roundhand", 
    "Academy Engraved LET", 
    "Marker Felt", 
    "Geeza Pro", 
    "Arial Rounded MT Bold", 
    "Trebuchet MS", 
    Arial, 
    Marion, 
    "Gurmukhi MN", 
    "Malayalam Sangam MN", 
    "Bradley Hand", 
    "Kannada Sangam MN", 
    "Bodoni 72 Oldstyle", 
    Cochin, 
    "Sinhala Sangam MN", 
    "Hiragino Kaku Gothic ProN", 
    Papyrus, 
    Verdana, 
    "Zapf Dingbats", 
    Courier, 
    "Hoefler Text", 
    "Euphemia UCAS", 
    Helvetica, 
    "Hiragino Mincho ProN", 
    "Bodoni Ornaments", 
    "Apple Color Emoji", 
    Optima, 
    "Gujarati Sangam MN", 
    "Devanagari Sangam MN", 
    "Times New Roman", 
    Kailasa, 
    "Telugu Sangam MN", 
    "Heiti SC", 
    "Apple SD Gothic Neo", 
    Futura, 
    "Bodoni 72", 
    Baskerville, 
    "Chalkboard SE", 
    "Heiti TC", 
    Copperplate, 
    "Party LET", 
    "American Typewriter", 
    "Bangla Sangam MN", 
    Noteworthy, 
    Zapfino, 
    "Tamil Sangam MN", 
    "DB LCD Temp", 
    "Arial Hebrew", 
    Chalkduster, 
    Georgia, 
    "Helvetica Neue", 
    "Gill Sans", 
    Palatino, 
    "Courier New", 
    "Oriya Sangam MN", 
    Didot, 
    "Bodoni 72 Smallcaps" 
) 

Czego mi brakuje? Dzięki!

+4

Czy zweryfikowałeś, że czcionka jest dołączona do celu kompilacji (w fazie budowy "Kopiuj zasoby pakietowe")? –

+1

Sprawdziłbym również wartość nieprzetworzoną klucza dla "Czcionek dostarczonych przez aplikację", aby upewnić się, że jest poprawna. Przeglądając * .plist w Xcode, kliknij prawym przyciskiem myszy i wybierz "Pokaż surowe klucze/wartości", a następnie sprawdź klucz "UIAppFonts". –

+0

Tak, wartością nieprzetworzoną jest UIAppFonts i jest ona uwzględniona w zasobach pakietu kopii – 0xSina

Odpowiedz

74

Moje komentarze zaczęły się długie, więc zdecydowałem się złożyć odpowiedź zamiast :)

  1. czcionki niestandardowe są obsługiwane tylko w iOS 3.2 i wyżej, więc upewnij się, że docelowa Wdrożenie budować ustawienie nie wraca bardziej niż wersja 3.2.

  2. Sprawdź, czy czcionka jest wliczone w celu kompilacji (w „Kopiuj Bundle Zasobów” budować fazy)

  3. Sprawdź wartość surowego o kluczu „czcionek dostarczonych przez aplikację”, aby upewnić się, że jest prawidłowy . Przeglądając * .plist w Xcode, kliknij prawym przyciskiem myszy i wybierz "Pokaż surowe klucze/wartości", a następnie sprawdź, czy klucz jest UIAppFonts.

  4. wierzę iOS wymaga nazwy PostScript dla czcionki podczas korzystania fontWithName: size:, które można znaleźć/zweryfikować, otwierając czcionkę w Apple Font Book i wpisując command+I.

  5. W pewnym momencie wystąpił problem z używaniem niestandardowych czcionek i UILabel. Nie jestem pewien, czy ten problem nadal istnieje. Rozwiązaniem była podklasa UILabel i ustawienie w niej czcionki.

Jeśli nadal nie działa, this Stack Overflow thread on custom fonts ma sporo informacji, możesz mieć trochę szczęścia tam.

EDIT
Nie ma gwarancji, że mam ten sam plik czcionki jak ty, ale na moim komputerze nazwa PostScript jest „EdwardianScriptITC”

+1

Dzięki za szczegółową odpowiedź. Problem polegał na 2, mimo że sprawdziłem dwukrotnie, w rzeczywistości nie było to w fazie tworzenia kopii (znak, że wkrótce muszę iść spać). – 0xSina

+0

# 4 doprowadził mnie do szaleństwa, teraz działa jak urok, dzięki. – andreamazz

+7

+1 dla informacji dla # 4 – user523234

0

Nazwa czcionki do wykorzystania wydaje się być „Nazwisko "w Książce Czcionek. Próbowałem nazwy PostScript, ale nie zawsze działa. Nazwisko rodzinne, o ile wiem, zawsze działało do tej pory.

Możesz sprawdzić te informacje, jak wspomniano w powyższej odpowiedzi, w Książce czcionek, wybierz czcionkę i naciśnij cmd + I.

Nadzieja to pomaga ...

0

miałem ten problem, chociaż przysięgałem miałem niestandardowych czcionek działa dobrze poprzednio.

Okazuje się, że wystarczy uruchomić "Clean" w moim projekcie w projekcie XCode, aby mógł ponownie ustanowić referencje.

1

miałem ten sam problem. możesz ustawić czcionkę na etykiecie z kreatora interfejsów w scenorysie.następnie uzyskać tę czcionkę w trybie debugowania z wytwórni jak:

let cfnt = txtUsernameField.font 

następnie kliknij przycisk I na małe okno debugowania i nazwy rodziny czcionki będzie writed w oknie konsoli. i możesz go użyć w następujący sposób:

txtUsernameField.font = UIFont(name: "MyriadPro-CondIt", size: 14) 
4

Jeśli twoja nazwa czcionki zawiera znak "-", zamień go na znak spacji. Na przykład Arial-Bold.ttf jest używany jak [UIFont fontWithName: "Arial Bold" rozmiar: 10];

+0

Yep pracował dla mnie! Miałem "-", kasując je wszystkie w imię czcionki, która działała! Dzięki! – RomOne

Powiązane problemy