проблема ландшафтного режима с панелью навигации - PullRequest
9 голосов
/ 18 ноября 2010

У меня есть ViewController, который управляет видом, в котором у меня есть табличное представление, ImageView и панель навигации. Когда я переключаю его в альбомный режим, панель навигации не изменяется до 32, а остается до 44 Сначала я попытался использовать автоматическое изменение размера в IB безуспешно, затем попытался поместить этот код во ViewController

.
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
    //[super willAnimateRotationToInterfaceOrientation:orientation duration:duration];
    CGRect frame = self.navigationController.navigationBar.frame;
    if (UIInterfaceOrientationIsPortrait(orientation)) {
         frame.size.height = 44;
    } else {
         frame.size.height = 32;
    }
    self.navigationController.navigationBar.frame = frame;
}

но ничего. Как я могу решить эту проблему?

Ответы [ 2 ]

8 голосов
/ 19 ноября 2010

Я ошибся, навигационного контроллера нет, поэтому я связал панель навигации в IB с выходом navBar в коде и использовал

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation  duration:(NSTimeInterval)duration {
    [super willAnimateRotationToInterfaceOrientation:orientation duration:duration];
    CGRect frame = self.navBar.frame;
    if (UIInterfaceOrientationIsPortrait(orientation)) {
        frame.size.height = 44;
    } else {
        frame.size.height = 32;
    }
    self.navBar.frame = frame;  
}

Теперь работает, у меня проблема только с изображением

0 голосов
/ 16 января 2013

У меня была такая же проблема с настроенным фоновым изображением для верхней панели навигации.

Мое пейзажное изображение не было правильной высоты, оно было высотой 44px вместо 32px (то же самое для версии @ 2x, было 88px вместо 64). После обрезки изображений верхняя панель альбомной ориентации имеет правильную высоту.

...