2011-01-15 9 views
6

¿Cómo puedo configurar la fuente personalizada en UINavigationBar? Necesito la fuente tahoma.¿Cómo puedo configurar la fuente personalizada en UINavigationBar?

- (void)viewDidLoad{ 
    self.title [email protected]"My text"; 
} 

alt text

+1

La fuente Tahoma es propiedad de Microsoft. Una vez que haya resuelto el lado de las licencias de las cosas háganoslo saber y lo ayudaremos con la codificación. :-) –

+0

Pero el iphone tiene una fuente tahoma incorporada. Necesito alguna licencia. – Voloda2

+2

Tahoma no es una de las fuentes incorporadas – grahamparks

Respuesta

21

totalmente posible, aunque un poco difícil de hacer. Una vez que haya encontrado la fuente que necesita (ya sea una de las alternativas ya incluidas con iOS, o un archivo TTF para el que obtuvo la licencia correcta), simplemente cree una UILabel con el tamaño, formato, fuente, etc. y luego agregue a los elementos de navegación para esa barra (o, si está haciendo esto en un controlador de vista, configure .navigationItem.titleView de ese controlador en su etiqueta).

Por ejemplo, tengo un controlador de vista dentro de un UINavigationController. Para cambiar la etiqueta en la parte superior de una fuente personalizada, hago simplemente:

//...I have already setup a UILabel called navLabel that has the same style as a 
// default navigation bar title, but I've changed the .font property to my custom font 
self.navigationItem.titleView = navLabel; 
[navLabel release]; 
+0

para completar, podría editar la respuesta para también apuntar a una lista de fuentes disponibles como [ésta] (http://daringfireball.net/misc/2007/07/iphone-osx-fonts);) –

+1

O [esta ] (http://iosfonts.com). –

17

Este código debería funcionar. En UIViewController la que presenta la interfaz de usuario principal:

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 

     int height = navigationController.navigationBar.frame.size.height; 
     int width = navigationController.navigationBar.frame.size.width; 

     UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, height)]; 
     navLabel.backgroundColor = [UIColor clearColor]; 
     navLabel.textColor = [UIColor whiteColor]; 
     navLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]; 
     navLabel.font = [UIFont boldSystemFontOfSize:15]; 
     navLabel.textAlignment = UITextAlignmentCenter; 
     self.navigationItem.titleView = navLabel; 
     [navLabel release]; 
} 

Tenga en cuenta que resulta vista personalizada tiene fondo transparente, de manera que se puede añadir algo más a su barra de navegación con [navigationController.navigationBar addSubview: Vista]. Esto puede ser giratorio en la esquina izquierda de la barra u otra cosa.

Si usa la vista personalizada, ya no podrá establecer el título con el título uiviewcontroller. Debe usar el modo disponible en su vista personalizada.

Ejemplo:

((UILabel *)self.navigationItem.titleView).text = title; 
Cuestiones relacionadas