UINavigationBar высота и ландшафтный режим - PullRequest
4 голосов
/ 14 августа 2010

Если я использую UINavigationController для отображения панели UINavigationBar, эта полоса намного тоньше в ландшафтном режиме, чем в портретном режиме.

Пока все хорошо, так как я хочу это поведение, но у меня есть одно представление, которое не обрабатывается UINavigationController, и поэтому я просто перетащил UINavigationBar из Interface Builder в представление, но это всегда имеет одинаковый размер и я не вижу способа сказать UINavigationBar, что он должен изменить размер.

Кто-нибудь знает, как этого добиться?

1 Ответ

10 голосов
/ 14 августа 2010

Вы можете изменить размер панели навигации в методе layoutSubviews вашего UIView, например так:

- (void)layoutSubviews {
    [super layoutSubviews];

    // Let navBar tell us what height it would prefer at the current orientation
    CGFloat navBarHeight = [navBar sizeThatFits:self.bounds.size].height;

    // Resize navBar
    navBar.frame = CGRectMake(0, 0, self.bounds.size.width, navBarHeight);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...