Панель навигации и верхнее поле

У меня проблема с UINavigationBar и его смещением по оси Y. Панель отображается без UINavigationController в качестве супервизора, но это не имеет значения. В viewController, где появляется панель навигации, настройка выглядит следующим образом:

    // Add Basic View
    CGRect viewFrame = [[UIScreen mainScreen] applicationFrame];
    UIView *myView = [[UIView alloc] initWithFrame:viewFrame];
 myView.backgroundColor = [UIColor greenColor];
 self.view = myView;
 [myView release];

    UINavigationBar *myBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
    .... add some Stuff to the bar...
    [self.view addSubview:myBar];
    [myBar release];

Когда я добавляю панель навигации в качестве панели View в self.view, я предположил, что origin.y = 0 будет означать, что панель должна отображаться непосредственно под строкой состояния. Это работает должным образом, если я запустил приложение на своем iPad, повернул его один (или несколько раз), а затем перешел к описанному выше представлению. В этом случае UINavigationBar отображается правильно. Тем не менее, если я запускаю свое приложение и напрямую перехожу к описанному выше контроллеру (без поворота устройства до появления этого конкретного контроллера), панель навигации перемещается на 20 пунктов ниже строки состояния. Но как только я поверну устройство, панель снова в порядке. Я проверил значение viewFrame.origin.y, и в обеих ситуациях оно составляет 20 баллов, поэтому я не понимаю, почему в одном случае панель просто игнорирует значение origin.y своего супервизора, а в другом - нет.

Я действительно смущен этим, кто-нибудь еще сталкивался с такой проблемой?

Спасибо большое за вашу помощь!

Пс. Еще пробовал с UIToolbar, проблема та же.


person Robin    schedule 28.07.2010    source источник


Ответы (1)


да. Мое решение - установить флаг «Полный экран при запуске» в Interface Builder для окна в файле MainWindow-iPad.xib. Затем создайте свои представления так, как если бы всегда отображалась строка состояния 20 пикселей, поэтому в моем корневом представлении у меня есть панель инструментов, которая расположена на 20 пикселей ниже верхней части экрана в представлении содержимого.

person lucius    schedule 28.07.2010