ios7 UINavigationBar перестает расширяться под строкой состояния через некоторое время
Прежде всего - это НЕ вопрос о перекрывающейся строке состояния панели навигации (как и многие другие). UINavigationBar (моего контроллера навигации) идеально выровнен, как я хочу.
Проблема с моей навигационной панелью.
Фоновое изображение (или сама панель навигации) перестает произвольно расходоваться под строкой состояния (через несколько секунд после запуска приложения или когда я представляю / отклоняю модальные контроллеры навигации над ним). Мое пользовательское изображение имеет правильные размеры для iOS (640x128px).
1. Первоначальный вид (желательно - пользовательский фон 640x128px хорошо расширяется под строкой состояния):
2. Через некоторое время (мигает само собой):
Что может вызвать такое случайное мерцание фонового изображения UINavigationBar?
Я использую следующий код для настройки моего фона:
// Load resources for iOS 7 or later
[[CustomNavigationBar appearance] setBackgroundImage:[self imageNamed:@"bg_top_ios7.png"] forBarMetrics:UIBarMetricsDefault];
[[CustomNavigationBar appearance] setBackgroundImage:[self imageNamed:@"bg_top_ios7.png"] forBarMetrics:UIBarMetricsDefaultPrompt];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
Мои настройки строки состояния в файле Info.plist:
У меня также есть следующие настройки в моем методе инициализации подкласса UIViewController (не уверен, имеет ли это значение):
-(id)init{
//DLog(@"BaseViewController init...");
if (self = [super init]) {
popToRoot = modal = NO;
rootIndex = 0;
indexInBottomNavigation = 0;
[Crashlytics setObjectValue:@"init" forKey:NSStringFromClass([self class])];
// iOS 7 adoptions:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
if ([self respondsToSelector:@selector(extendedLayoutIncludesOpaqueBars)])
self.extendedLayoutIncludesOpaqueBars = YES;
if ([self respondsToSelector:@selector(automaticallyAdjustsScrollViewInsets)])
self.automaticallyAdjustsScrollViewInsets = NO;
}
return self;
}
Мои контроллеры представления встроены в UINavigationController (который заботится о позиционировании UINavigatioBbar). Я также использую ECSlidingViewController (раскрыть контейнер) в качестве контейнера для моих контроллеров навигации, но я не уверен, имеет ли это значение.