Почему моя панель инструментов не видна в ландшафтном режиме? - PullRequest
0 голосов
/ 21 апреля 2009

Моя цель состояла в том, чтобы приложение работало как в альбомной, так и в портретной ориентации, и все, что я мог выяснить, это код ниже. Приложение работало нормально в портретной ориентации, но при переключении в альбомную ориентацию текст не расширялся (вправо), чтобы заполнить дополнительное пространство. Я удостоверился, что мои пружины / стойки установлены, и что родители выбрали «allowResizing» в 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);
  }
}

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

Портрет http://mr -sk.com / img / land.png

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

Пейзаж http://mr -sk.com / img / por.png

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 04 октября 2009

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

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

0 голосов
/ 21 апреля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...