Как предотвратить авторазмер UINavigationBar на альбомной - PullRequest
8 голосов
/ 11 августа 2011

Как правило, в ландшафтном режиме навигационная панель, управляемая контроллером навигации, автоматически уменьшает свои размеры.

Но я хочу предотвратить это автоматическое изменение размера.

Сначала я установил панель навигации скрытой и использовал другую панель навигации, не управляемую контроллером навигации. Итак, я решил проблему. Но я хочу найти способ отключить автоматическое изменение размера панели навигации в альбомной ориентации без использования другой панели, не контролируемой контроллером навигации.

Ответы [ 2 ]

5 голосов
/ 07 мая 2013

Я решил это, создав категорию на UINavigationBar:

@implementation UINavigationBar (customHeight)

- (CGSize)sizeThatFits:(CGSize)size
{
    CGSize newSize = CGSizeMake(self.frame.size.width,44);
    return newSize;
}

@end

С созданной категорией высота теперь остается фиксированной на уровне 44 - мне даже не нужно никуда импортировать категорию.

Мое приложение использует раскадровки, но я уверен, что оно будет работать в любом случае.

2 голосов
/ 04 марта 2015

Это будет работать для iOS 8

extension UINavigationBar {
    public override func sizeThatFits(size: CGSize) -> CGSize {
        var newSize = CGSizeMake(UIScreen.mainScreen().bounds.width, 44)
        return newSize
    }
}
...