ios7 UINavigationBar po pewnym czasie przestaje rozszerzać się w pasku stanu
Po pierwsze - to NIE jest pytanie o pasek nawigacji nakładający się na pasek stanu (jak wiele innych). UINavigationBar (mojego kontrolera nawigacji) jest idealnie wyrównany, jak chcę.
Problem tkwi w moim niestandardowym tle paska nawigacji.
Obraz tła (lub sam pasek nawigacji) zatrzymuje losowo pod paskiem stanu (po kilku sekundach od uruchomienia aplikacji lub kiedy prezentuję / odsuwam nad nią modalne kontrolery nawigacji). Mój niestandardowy obraz ma odpowiednie wymiary dla systemu iOS (640x128px).
1. Wstępne spojrzenie (pożądane - niestandardowe tło 640 x 128 pikseli ładnie sięga pod pasek stanu):
2. Po chwili (miga sama):
Co może spowodować takie losowe migotanie obrazu tła UINavigationBar?
Do skonfigurowania mojego tła używam następującego kodu:
// 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];
Moje ustawienia paska stanu w pliku Info.plist:
Mam również następujące ustawienia w mojej metodzie inicjowania podklasy UIViewController (nie jestem pewien, czy ma to znaczenie):
-(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;
}
Moje kontrolery widoku są wbudowane w kontroler UINavigationController (który zajmuje się pozycjonowaniem UINavigatioBbar). Używam także ECSlidingViewController (ujawniaj kontener) jako kontener dla moich kontrolerów nawigacji, ale nie jestem pewien, czy to ma znaczenie.