Pourquoi yat-il des lacunes à gauche / droite quand j'ajouter une image à ma barre de navigation?
-
22-09-2019 - |
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.
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.