Как предотвратить изменение размера представления / преобразование, когда UINavigationBar скрывает / показывает - PullRequest
7 голосов
/ 19 мая 2010

У меня есть приложение с панелью вкладок и панелью навигации.Я нажимаю на контроллер просмотра, который используется для показа фотографий, по одной за раз.Первоначально он показывает бары и элементы управления вперед / назад;после задержки они скрываются, используя setNavigationBarHidden:animated: и пользовательское преобразование (CGAffineTransformMakeTranslation) на панели вкладок.Это работает, но представление контроллеров представления, которое показывает фотографию, прыгает вверх и вниз.То же самое верно, если я оставляю панель вкладок вне уравнения.

Как я могу предотвратить перемещение UINavigationBar вокруг моего вида?Мне бы хотелось, чтобы фотография оставалась фиксированной на экране, а навигационная панель опускалась над ее верхним сегментом.

Ответы [ 4 ]

1 голос
/ 23 января 2013

Была эта проблема и исправлена ​​с помощью класса, унаследованного от UINavigationController

-(void)viewWillAppear:(BOOL)animated
{
    self.navigationBar.translucent = YES;
}

Отлично работал для меня, не нужно было устанавливать стиль на UIBarStyleBlackTranslucent. Так оно и сохранило мои цвета.

1 голос
/ 10 ноября 2011
[[navigationController navigationBar] setBarStyle:UIBarStyleBlackTranslucent];
[[navigationController navigationBar] setAutoresizesSubviews:NO];

это, похоже, помогло мне

0 голосов
/ 15 декабря 2010

Мне не удалось найти правильный способ справиться с этим, кроме как установить стиль навигационного бара прозрачным, как в:

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

Помимо создания еще одной панели навигации и добавления к ним кнопок, это лучше всего (и, похоже, именно это Apple делает и в своем приложении Photo)

0 голосов
/ 04 ноября 2010

Я знаю, что это старый вопрос, но я достиг этого, отключив «Autoresize Subviews» в Интерфейсном Разработчике

alt text

...