2012-06-19 2 views
1

Переключение на 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]; 
    } 

Это работает довольно хорошо, но: мой пользовательский образ имеет закругленные углы (см. прикрепленные изображения), который вызывает следующее:

Начиная с портретного режима, все выглядит нормально.

Portrait (normal)

Изменение в ландшафтном режиме также хорошо выглядит.

Landscape (normal)

Переход обратно в портретном режиме, однако, не кажется, чтобы изменить изображение на NavigationBar.png, таким образом, нет закругленного угла в правом верхнем угле.

Portrait (without rounded corner on the top right)

Любые советы о том, как решить эту проблему оценили.

// редактировать

Добавление следующий код в мой 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]; 
} 

ответ

0

Поскольку iOS6 вводит закругленные углы по умолчанию, эта проблема скоро исчезнет.