Панель навигации UIImagePicker поддерживает drawRect. Как я могу это остановить?

#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;