Приложение, над которым я работаю, имеет собственную панель nab, но поддерживает iOS 4.2-iOS 5, поэтому мне нужно установить фон и оттенок UINavigationBar этим старым школьным способом в моем делегате приложения.
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
self.tintColor = [UIColor colorWithRed:42.0/255.0
green:164.0/255.0
blue:182.0/255.0
alpha:1.0];
UIImage *img = [UIImage imageNamed:@"navbar_bg.png"];
[img drawInRect:CGRectMake(0.0, 0.0,
self.frame.size.width,
self.frame.size.height)];
}
@end
Это работает по большей части, но я заметил, что при первом запуске приложения UIBarButtonItems мигает цвет панели навигации по умолчанию на секунду, прежде чем они исправят себя и изменят цвет в соответствии с панелью навигации.Интересно, что сама панель навигации правильно использует фоновое изображение с самого начала.
Чтобы было ясно, я использую setBackgroundImage для UINavigationBar на устройствах iOS 5, который работает, как и ожидалось, поэтому вспышка есть только в iOS 4.
Кто-нибудь может понять, почему это произошло и / или как это исправить?