2013-08-17 14 views
5

Sto cercando di personalizzare l'aspetto del titolo della barra di navigazione nella mia applicazione ios. Questo è il codice ho attualmente:Evita che il titolo di UiNavigationBar venga troncato?

NSMutableDictionary *navigationTitleAttributes = [NSMutableDictionary dictionary]; 
[navigationTitleAttributes setValue:[UIColor whiteColor] forKey:UITextAttributeTextColor]; 
[navigationTitleAttributes setValue:[UIColor clearColor] forKey:UITextAttributeTextShadowColor]; 
[navigationTitleAttributes setValue:[NSValue valueWithUIOffset:UIOffsetMake(0.0, 0.0)] forKey:UITextAttributeTextShadowOffset]; 
[navigationTitleAttributes setValue:[UIFont fontWithName:@"Calibri" size:30] forKey:UITextAttributeFont]; 


[[UINavigationBar appearance] setTitleTextAttributes:navigationTitleAttributes]; 
[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:-8 forBarMetrics:UIBarMetricsDefault]; 

Il codice produce il seguente effetto:

SCreenshot

E le grandi opere, ma il mio titolo viene tagliato fuori dal fondo.

Ho visto soluzioni a questo problema che utilizzano un UIView personalizzato (come questo: UINavigationbar title is cut off when using titleTextAttributes). Tuttavia, quella particolare soluzione richiede che la proprietà titleView della barra di navigazione sia aggiornata per ogni schermata.

Mi chiedevo se esistesse una soluzione semplice che sarebbe passata a cascata attraverso la mia intera applicazione.

Grazie

risposta

0

soluzione semplice Th è di non usare un così grande dimensione dei caratteri. Se si imposta la dimensione su zero, il testo dovrebbe essere ridimensionato automaticamente come appropriato.

In caso contrario, l'utilizzo di una vista personalizzata è la soluzione corretta. È possibile creare una sottoclasse del controller di navigazione o della barra di navigazione per garantire che tutte le viste abbiano l'etichetta con lo stesso stile.

+0

Impostare la dimensione del carattere a zero per auto-formato del testo è una grande punta, funziona bene. – Paludis

0

Se si utilizza un carattere personalizzato, si potrebbe avere lo stesso problema che ero. Ho trovato alcune risposte su questo post per essere abbastanza utile. Ho modificato i valori dei miei discendenti nel mio file .otf per evitare che il mio font venisse tagliato sul fondo. E 'stato particolarmente diffuso in iOS 7.

Custom installed font not displayed correctly in UILabel