Je veux changer l'arrière-plan de la barre de navigation en utilisant ma propre image, mais je ne sais vraiment pas quoi faire. Je l'ai cherché sur Google, mais certains exemples disent dans le modèle de la barre de navigation. mon application est une base de vue partagée. Comment pourrais-je faire ça ??changer l'arrière-plan de la barre de navigation en utilisant ma propre image
Répondre
Si vous voulez changer l'arrière-plan de la barre de navigation trop sans utiliser la catégorie, cela pourrait être utile de donner cette sensation, voir si elle répond à vos besoins:
- (void)viewDidLoad {
[super viewDidLoad];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
//here for v, width= navBar width and height=navBar height
[v setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"a.png"]]];
[self.view addSubview:v];
[v release];
[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
}
Pour ajouter une image d'arrière-plan à UINavigationBar, vous devez créer une catégorie qui étend UINavigationBar. Trouvez simplement le code ci-dessous et ajoutez-le dans votre fichier d'implémentation. Après l'avoir implémenté, vous pouvez l'appeler n'importe où dans votre application et vous pouvez voir le changement sur chaque vue. N'oubliez pas d'ajouter une image dans votre dossier de ressources.
#import "ImageViewController.h"
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"background.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
implement this code in your .m file
@implementation ImageViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
UIImageView *backGroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
[self.navigationController.navigationBar insertSubview:backGroundView atIndex:0];
[backGroundView release];
}
@end
merci beaucoup .... il est vraiment aide fulll (n_n) –
les gars ... j'ai essayé votre code, mais sans mettre en œuvre la catégorie dans la méthode viewDidLoad, l'arrière-plan est toujours affiché .. est-ce quelque chose de mal? ? Je suis désolé, ma compréhension est encore faible –
les gars ... je sais savoir.customization à cette catégorie font de l'arrière-plan de chaque barre de navigation dans cette application changer en image qui définissent là. Donc, si j'ai 3 barre de navigation, chaque arrière-plan a le même arrière-plan. Mais si je veux changer et rendre chaque arrière-plan différent, que dois-je faire ??? j'essaye de définir dans chaque viewDidLoad, mais chaque arrière-plan montre juste le tintColor, pas l'image ... que devrais-je faire ??? –
Vous pouvez ajouter l'image directement en arrière-plan de la barre de navigation avec le code ci-dessous
[navigation_bar setBackgroundImage:[UIImage imageNamed:@"image.jpg"] forBarMetrics:UIBarMetricsDefault];
je vous remercie pour votre réponse ... j'essayais cela aussi, et c'est fait aussi :) en utilisant cette réponse, faites-moi changer l'arrière-plan de la barre de navigation différente, en utilisant une image différente :) –
c'est ok. et merci pour votre réponse. –