2009-04-21 4 views
0

Моя цель состояла в том, чтобы заставить приложение работать как в ландшафтном, так и в портретном режимах, и все, что я мог понять, это был этот код ниже. Приложение прекрасно работало в портрете, но при переключении на пейзаж текст не расширялся (вправо), чтобы заполнить дополнительное пространство. Я убедился в том, что мои пружины/распорки установлены, и что родители «разрешили отмену» выбрали в IB.Почему моя панель инструментов не видна в ландшафтном режиме?

Вот что я сделал вместо этого:

- (void) willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration: 
(NSTimeInterval)duration { 
    UIInterfaceOrientation toInterfaceOrientation = self.interfaceOrientation; 

    if (toInterfaceOrientation == UIInterfaceOrientationPortrait) { 
    self.myView.frame = CGRectMake(0.0, 0.0, 320.0, 480.0); 
    } 
    else { 
    self.myView.frame = CGRectMake(0.0, 0.0, 480.0, 256.0); 
    } 
} 

Обратите внимание, что она выглядит просто отлично в портретном режиме (появляется панель инструментов):

Portrait http://mr-sk.com/img/land.png

Но панель ушла в ландшафтном режиме :

Landscape http://mr-sk.com/img/por.png

Любые идеи?

+0

Я убедился, что кадр правильно в ландшафтном режиме: Вот изображение: HTTP : //mr-sk.com/img/IB.png – 2009-04-21 03:16:34

ответ

0

Есть несколько причин, почему это может быть испорчено ... возможно, ваш UIToolbar имеет неправильный родитель. Может быть, layoutSubviews запускается и перемещает его куда-то странным. Или что-то другое.

Я рекомендую вам реализовать didRotateFromInterfaceOrientation: на вашем контроллере просмотра и прочитать ракурс UIToolbar после вращения, чтобы увидеть, куда он ушел. Это будет лучший способ узнать точную проблему.

3

Если вы используете Interface Builder - вы получите тот же результат, если не указали ограничения в инспекторе объектов, чтобы привязать панель инструментов к обоим краям и к нижней части (щелкните по маленьким красным линиям, чтобы указать ограничения).

Вы также можете сделать то же самое в коде - вам нужно для поиска, как это сделать (но его проще в IB)

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