2012-04-16 9 views
5

que estoy haciendo algo como esto:¿Por qué la configuración de la imagen de fondo de mi UINavigationBar afecta el tamaño de la barra de navegación?

UIImage *barBackgroundImage = [UIImage imageNamed:@"myImage.png"]; 
[[UINavigationBar appearance] setBackgroundImage: 
            backgroundImage 
            forBarMetrics:UIBarMetricsDefault]; 

Y el UINavigationBar resultante es mucho más grande que la barra de navegación estándar. Soy consciente de que el tamaño de mi imagen podría ser el problema. ¿Hay alguna manera de encargarse de esto programáticamente?

+0

Tengo el mismo problema ... ¿Terminaste resolviendo esto? –

+1

Lo tengo ahora. Si su imagen de retina es 640x88, simplemente especifique el nombre en el código sin el @ 2x incluido. Por alguna razón, el sistema no cambiará el tamaño correctamente si incluye el '@ 2x' en el código (o si lo nombra algo sin el '@ 2x') –

Respuesta

4

Así es como configuré la imagen de fondo de UINavigationControllernavigationBar.

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault]; 
[self.navigationController.navigationBar setTintColor:LIGHTBROWN]; 

navbar.png es 320x44 y respectivamente 640x88 para [email protected].

2

Siga este enlace para hacer que el código compatible con iOS4, 5 y 6: http://robert-varga.com/?p=735

Sólo hay que hacer en Photoshop u otro software de una forma rectangular con el tamaño de 320x44 o 640x88 (para visualización de la retina) y la importación a su proyecto

Cuestiones relacionadas