2014-11-05 13 views
7

Ho passato alcune ore a cercare di utilizzare un carattere personalizzato per il titolo barra di navigazione su iOS 8. Questo funziona bene su iOS 7:carattere personalizzato UINavigationBar non funziona su iOS 8

UIFont *font = [UIFont fontWithName:@"Gotham-Bold" size:12]; 
NSDictionary *textAttributes = @{ NSFontAttributeName: font }; 
self.navigationController.navigationBar.titleTextAttributes = textAttributes; 

Ma su iOS 8 il testo semplicemente scompare. Cambiando il colore, o la dimensione del carattere di sistema funziona perfettamente, ma provare a usare un carattere personalizzato non funzionerà affatto. Qualcuno ha qualche idea su questo?

Grazie!

EDIT

Ho creato un piccolo progetto in modo da poter provare voi stessi: https://github.com/noquepoaqui/customHeaderFont

Queste righe di codice sono in MasterViewController on line 30.

+0

Dove si esegue questo codice? Un approccio migliore sarebbe utilizzare il proxy di UIA e modificarlo a livello di applicazione – sha

+0

Ho anche provato con '[[UINavigationBar appearance] setTitleAttributes: textAttributes];' e ottenere lo stesso risultato – Noquepoaqui

+1

Può essere correlato al carattere personalizzato? Puoi provare a personalizzarlo usando uno dei font predefiniti? – sha

risposta

0

Hai un errore di battitura quando si assegnano gli attributi:

Dovrebbe essere:

self.navigationController.navigationBar.titleTextAttributes 

invece di:

self.navigationController.navigationBar.TitleTextAttributes 

Se questo non risolve il problema, è possibile verificare se il font è stato aggiunto correttamente portando questo codice nel AppDelegate del didFinishLoadingWithOptions. Questo stamperà tutti i font disponibili della tua app. Basta guardare la finestra di output e cercare il nome del font (Gotham-Bold). Se non è elencato, puoi eliminare il carattere dal progetto e aggiungerlo di nuovo tramite il trascinamento &. Assicurati di selezionare "aggiungi a destinazione" accanto alla tua app nella finestra di dialogo che appare.

//list all available fonts 
for (NSString *family in [UIFont familyNames]) { 
    NSLog(@"---------- %@ ----------", family.uppercaseString); 
    NSArray *names = [UIFont fontNamesForFamilyName:family]; 
    for (NSString *font in names) NSLog(@"%@", font); 
} 
+0

funziona ma non funziona in entrambi i modi – Noquepoaqui

+0

il font è nella lista, lo uso in altre parti dell'applicazione, non riesco a farlo funzionare sul titolo della barra di navigazione – Noquepoaqui

+0

puoi fare un progetto di esempio con un singolo navigationviewcontroller e replicare il problema? potresti pubblicare un link al tuo progetto di esempio se ha lo stesso problema? – Hannes

0

carattere La TTF stavo usando non funzionava bene. Ho installato la versione .otf e tutto funziona bene.

+0

Ho questo problema con il font otf, penso che non sia una soluzione ... –

Problemi correlati