Переключение на iOS5, я хотел бы использовать обычая стилизованной UINavigationBar
, используя следующий фрагмент кода:UINavigationBar setBackgroundImage: forBarMetrics: портрет/пейзаж странность
if ([navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:
forBarMetrics:)]) {
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavigationBar.png"]
forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavigationBarLandscape.png"]
forBarMetrics:UIBarMetricsLandscapePhone];
}
Это работает довольно хорошо, но: мой пользовательский образ имеет закругленные углы (см. прикрепленные изображения), который вызывает следующее:
Начиная с портретного режима, все выглядит нормально.
Изменение в ландшафтном режиме также хорошо выглядит.
Переход обратно в портретном режиме, однако, не кажется, чтобы изменить изображение на NavigationBar.png, таким образом, нет закругленного угла в правом верхнем угле.
Любые советы о том, как решить эту проблему оценили.
// редактировать
Добавление следующий код в мой ViewController снимает эту «ошибку», но это не может быть правильным решением!?!
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation
duration:duration];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBar.png"]
forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarLandscape.png"]
forBarMetrics:UIBarMetricsLandscapePhone];
}