2009-06-14 15 views
6

Vorrei utilizzare alcuni caratteri che non fanno parte del sistema operativo dell'iPhone. Ho visto giochi che usano caratteri non standard. Posso installare i font, creare immagini per ognuno in Photoshop e quindi utilizzare quelle immagini nell'app per iPhone. Tuttavia, non penso che sia un modo pratico per andare. Se il colore o la tinta deve essere regolato (a causa dello sfondo) o la dimensione, dovrò ridisegnare ogni carattere che sto usando. C'è un modo migliore per farlo?Uso di caratteri non presenti su iPhone

Ho letto questo Can I embed a custom font in an iPhone application? e scaricato l'app di etichetta del carattere open source. Tuttavia, si blocca il più delle volte quando provo a usare caratteri particolari. Per quanto riguarda l'ultimo commento sull'utilizzo di UIFont con fontWithName: size, sicuramente non funziona. La tua variabile font sarà nulla. L'elenco di tutti i tipi di carattere disponibili rivela perché - nessuno dei caratteri personalizzati è presente nell'elenco.

Ho anche letto How do I include a font with my iPhone application?, che sicuramente non funziona. Come l'ultimo commento nel link sopra.

+0

Molti giochi usa il proprio rendering dei font. –

+0

Ti serve il rendering dei font OpenGL? o vuoi usare caratteri personalizzati all'interno di una tipica app Cocoa-Touch? – Goles

risposta

7

La risposta corretta è quella di utilizzare FontLabel, che può essere trovato su GitHub. http://github.com/zynga/FontLabel

Ho usato quel codice in diversi progetti del mondo reale ed è assolutamente fantastico.

UPDATE:

Come di iOS 3.2 (iPad solo) & iOS 4 su iPhone, è possibile confezionare i font TTF all'interno del vostro pacco app. Dopo averli inseriti nel tuo Info.plist usando la chiave UIAppFonts.

Tre passo le istruzioni qui: http://kgriff.posterous.com/45359635

+0

Come ha detto @David Dunham, i giochi di solito usano un diverso tipo di rendering dei font, chiamato rendering di font bitmap. In realtà mostra le coordinate di un'immagine piuttosto che i vettori basati sulla matematica ed è limitato alla dimensione specificata nell'immagine. –

0

Questo purtroppo non è una risposta immediata, ma sembra che in futuro, si sarà in grado di includere font personalizzati come parte della vostra applicazione:

UIAppFonts (Array - iPhone OS) specifica qualsiasi applicazione -fontati i caratteri che dovrebbero essere resi disponibili attraverso i normali meccanismi. Ogni elemento nell'array è una stringa contenente il nome di un file di font (inclusa l'estensione del nome file) che si trova nel pacchetto dell'applicazione. Il sistema carica i caratteri specificati e li rende disponibili per l'utilizzo dell'applicazione quando viene eseguita l'applicazione.

Sfortunatamente, questo funziona solo su iPhone OS 3.2, che è la versione specifica per iPad. Sembra molto probabile che questa funzione sarà disponibile nelle versioni future di iPhone OS.

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

(questa era l'unica documentazione di pubblico che ho trovato sul sito di Apple)

3

La soluzione è quella di aggiungere una nuova proprietà "Font forniti da applicazione" al file info.plist.

Quindi, è possibile utilizzare il carattere personalizzato come normale UIFont.

2

Questo è in realtà abbastanza semplice.

Includete il vostro TTF nel pacchetto di app. Aggiungi la chiave Fonts provided by application/UIAppFonts all'applicazione, questa è una matrice di nomi di file per i tipi di carattere che stai includendo (inclusa l'estensione) ad es.:

enter image description here

È possibile l'uso del carattere abbastanza facilmente usando UIFont:

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

Questo funziona su tutte le versioni di iOS da 3.2, anche per quanto riguarda l'iPhone da iOS 4.

Problemi correlati