2009-05-14 21 views

Respuesta

116

Ajuste del navigationItem titleview

UIImage *image = [UIImage imageNamed:@"image.png"]; 
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:image]; 
+2

¿cuál es el tamaño de UIImage debería ser para el título? Lo intenté con 180 * 40 pero se está volviendo borroso. – Krunal

+0

Esto funciona perfectamente en iOS 7.1 (sin 'autorelease', por supuesto) El tamaño de mi imagen era 296x40px (2x) y se muestra perfecto. ¡Gracias! – Alex

+0

acaba de agregar un consejo. En breve el código sería: let imgTitleBar = UIImage (llamado: "iphone-menu.png") self.navItem.titleView = UIImageView (image: imgTitleBar) –

11

Puede cambiar todas las vistas en una UINavigationBar. Si usted está tratando de alterar el navigationbar en un controlador de navegación hacer:

self.navigationItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"] autorelease]; 

Si va a crear el navigationbar mismo hacen lo mismo, pero en lugar de llamar a self.navigationItem llamada: navigationBar.topItem

+4

Cuál es el tamaño de UIImage debe ser por el título ?? Lo intenté con 180 * 40 pero se está volviendo borroso. – Krunal

+0

** self.navigationBar.topItem ** hizo el truco. Gracias –

0

Buscando una respuesta a esta pregunta, he encontrado una solución agradable y sencillo en el Apple Discussions forum, anulando -(void)drawRect:(CGRect)rect para UINavigationBar:

@implementation UINavigationBar (CustomImage) 
- (void)drawRect:(CGRect)rect { 
    UIImage *image = [UIImage imageNamed: @"NavigationBar.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
@end 
+0

Diría que no es la mejor solución, ya que El título se puede establecer de todos modos y es más como un truco, pero puede resolver el problema fácilmente y funciona. –

19

Swift
bastidor metálico incluye sugerido/escalado

let image : UIImage = UIImage(named: "image.png")! 
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40)) 
imageView.contentMode = .ScaleAspectFit 
imageView.image = image 
self.navigationItem.titleView = imageView 
+0

Gracias @ Michael-R .... Pero después de que agregué el siguiente código, el título de mi elemento de navegación no se muestra. – Cloy

+0

Swift y iOS han cambiado un poco desde que publiqué esta respuesta, intentaré echarle un vistazo pronto – rambossa

+0

Trabajo perfecto como debería ser ... esta solución también es para imágenes borrosas .... –

2

actualiza con 2.x Swift

navigationItem.titleView = UIImageView.init(image: UIImage(named:"yourImageName")) 
Cuestiones relacionadas