#uiimagepickercontroller #uinavigationbar #drawrect
#uiimagepickercontroller #панель навигации uinavigationbar #drawrect
Вопрос:
Я использую следующий код для установки фона всех панелей навигации в моем приложении. Однако, когда я загружаю UIImagePicker, ее UINavigationBar будет иметь тот же backgroundView, что и все другие панели навигации UINavigationBar в моем приложении.
Как я мог бы предотвратить это?
@implementation UINavigationBar (UINavigationBarCategory)
- (void) drawRect:(CGRect)rect {
[[UIImage imageNamed:@"NavBarSocial.png"] drawInRect:rect];
}
@end
Комментарии:
1. Имейте в виду, что чрезмерное использование UINavigationBar приведет к снижению производительности. Я понимаю, что вы хотите выполнить некоторую настройку панели навигации, но вы можете сделать это с помощью XIBs, а не с помощью категории. Также имейте в виду, что ваш взлом здесь не будет работать в iOS 5.
2. Да, спасибо. Мне нужно будет обновить приложение для этого. Мне нужно было бы использовать setBackgroundImage … метод, верно?
Ответ №1:
У меня была такая же проблема, и я исправил ее, используя следующий код в моем методе drawRect
UIColor *color = [UIColor blackColor];
UIImage *img = [UIImage imageNamed: @"NavigationBarBackground.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = color;