2010-08-31 2 views
0

Я типичный вид на основе применения (MainWindow.xib + viewControler.xib), в котором я HIDDEN статус в файле AppDelegate, как это ...статусной и SuperView размер кадра

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

я создайте различные подпункты в mainview (главным образом UIWebViews), которые имеют полный экран, расположенный в 0,0. Затем я создал кнопку, которая позволяет вам переключать представление панели состояния. Моя проблема начинается, когда я показываю строку состояния и изменяю ориентацию экрана, представления не имеют полного размера окна и начинаются сразу после строки состояния (в y: 20 вместо y: 0), а их высота равна уменьшено на 20 пикселей, и если я удалю статус, я увижу пустое место.

Итак, вопрос в том, как этот код игнорирует наличие панели состояния и всегда позиционирует новые или переориентированные представления в 0,0 вместо 0,20 (если отображается строка состояния). Я думаю, что проблема не лежит на моем основном представлении, но в моем MainWindow.xib, но я не могу найти никакого решения.

UPDATE1: Я также проверяю решение в свойстве autoresizingmask для subviews.

Thanx заранее ...

ответ

7

я, наконец, нашел решение, и я могу упасть спать спокойно.

Решение находится в собственности wantsFullScreenLayout, и вы должны установить его в YES. Так посетить ваш AppDelegate, который добавляет свой MainView (SuperView) и добавьте следующую строку:

viewController.wantsFullScreenLayout = YES; 

до этой линии

[window addSubview:viewController.view]; 

на didFinishLaunchingWithOptions вашего файла AppDelegate.m.

Таким образом, ваш супервизор ALLWAYS использует полноэкранное разрешение и не изменяет размер, если присутствует панель состояния!

Смежные вопросы