2010-07-28 3 views
1

У меня проблема с 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]; 

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

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

Большое спасибо за помощь!

Ps. Я также пробовал его с UIToolbar, проблема такая же.

ответ

0

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

+0

Извините, вроде как в последнее время, но приятное решение, спасибо! – Robin

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