Vous n'avez pas besoin de créer une classe personnalisée. Vous pouvez ajouter une catégorie à UIToolBar comme ci-dessous
@implementation UIToolbar (UIToolbarCategory)
- (void)drawRect:(CGRect)rect {
UIColor *color = [UIColor colorWithRed:0.547 green:0.344 blue:0.118 alpha:1.000]; //whatever goes well with your background image.
UIImage *img = [UIImage imageNamed: @"your-navbar-img.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[img release];
self.tintColor = color;
[super drawRect:rect];
}
@end
J'ai testé et cela fonctionne bien.
P.S: J'ai testé avec 4.3 la nuit dernière & cela ne fonctionnait pas comme prévu mais fonctionne bien avec 4.2. Je ne trouve aucune raison encore, mettra à jour une fois que je trouve l'extrait droit.
Pour les versions 4.3 et supérieures, l'addition de la catégorie UIToolbar ou UINavigationBar n'est pas prise en charge. Le code suivant fonctionne avec 4,3
#import <UIKit/UIKit.h>
@interface MyAppToolBar : UIToolbar{
}
@end
@implementation MyAppToolBar
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
UIColor *color = [UIColor colorWithRed:0.547 green:0.344 blue:0.118 alpha:1.000]; //wood tan color
UIImage *img = [UIImage imageNamed: @"your-navbar-img.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[img release];
self.tintColor = color;
}
@end
Le problème avec la limitation est, vous devez changer l'objet CustomClass de chaque UIToolbar que vous avez dans tout votre fichier XIB au catalogue. Et je crains que cela n'affecte pas la barre de navigation lorsque vous ouvrez UIImagePickerController pour correspondre à votre style d'application.
Si initWithPatternImage ne fait pas ce que vous voulez, alors expliquer ce que vous voulez augmenterait vos chances d'obtenir une réponse. –