Question

UIImageView *navBarImageView = [[UIImageView alloc] initWithImage:navBarImage];
[navBarImageView setFrame:CGRectMake(0, 0, 320, 44)];
self.navigationItem.titleView = navBarImageView;
[navBarImageView release];

Je suis en train d'ajouter une image à mon navigationBar, mais quand je le code comme indiqué ci-dessus, elle place l'image dans le navigationBar mais laisse un espace gris à gauche et à droite de l'image. L'image a été créée à 320x44, je ne sais pas pourquoi il est redimensionnant malgré le fait que je suis en train de le cadre.

Était-ce utile?

La solution

C'est ... probablement pas comment vous voulez faire-ce est pas ce que le titleView est pour. La manière habituelle de faire un arrière-plan de navigation barre personnalisée est de créer une catégorie sur UINavigationBar, comme suit:

 @implementation UINavigationBar(MyCustomBackground)
 - (void)drawRect:(CGRect)r
 {
      [[UIImage imageNamed:@"my-navigation-background.png"] drawInRect:self.bounds];
 }
 @end

Jeter que dans un fichier .m dans votre projet et vous devriez voir tous vos barres de navigation utiliser « my-navigation-background.png » comme arrière-plan.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top