Размер экрана Iphone, iPad с портретным режимом и режимом ladscape программным способом - PullRequest
2 голосов
/ 08 июня 2011

Это меня немного смущает. Я знаю 2 свойства в UIScreen о размере экрана, например, в этом вопросе используйте applicationFrame , и это использует bounds .

  • applicationFrame - Показывает размер устройства минус строка состояния. Делая NSLog в iPhone, я получаю следующие значения: (x = 0, y = 20, высота = 460, ширина = 320)
  • границы - Показать все размеры экрана. Значения: (x = 0, y = 0, высота = 480, ширина = 320)

Теперь, если я поверну устройство (от портрета к лестнице), это покажет (У границ будет все одинаковое значение)

  • Перейти к функции: shouldAutorotateToInterfaceOrientation : x = 0 y = 20 высота = 460 ширина = 320
  • верните ДА так
  • Функция Go: didRotateFromInterfaceOrientation : x = 20 y = 0 высота = 480 ширина = 300
  • Я не знаю почему, но этот проход еще раз в shouldAutorotateToInterfaceOrientation и показать: x = 20 y = 0 height = 480 width = 300 (Это ошибка?)

Я хочу изменить размер моего представления до этого нового размера, но если я получу CGRect, он даст правильный размер в didRotateFromInterfaceOrientation, а высота будет шириной и наоборот.

Есть ли хороший способ изменить размер моего вида, не устанавливая эти значения вручную?

1 Ответ

1 голос
/ 02 июля 2011

(Предполагается, что эта точка была для поворота из пейзажа обратно в портрет)

Я не знаю почему, но этот проход еще раз в shouldAutorotateToInterfaceOrientation и покажем: x = 20 y = 0 height= 480 ширина = 300 (Это ошибка?)

Это не ошибка!

shouldAutorotateToInterfaceOrientation вызывается до поворота пользовательского интерфейса в соответствии с ориентацией устройства.Итак, в первом случае (Портрет в Пейзаж) это дает вам прямоугольник для книжной ориентации.во втором случае (Пейзаж в Портрет) он дает вам прямоугольник для альбомной ориентации.

Итог:
shouldAutorotateToInterfaceOrientation дает значения CGRect до инициации вращения пользовательского интерфейса didRotateFromInterfaceOrientation дает значения CGRect после завершения поворота пользовательского интерфейса

Я предлагаю вам посмотреть autoresizesSubviews и autoresizingMask свойства UIView.Это экономит много головной боли, когда вы работаете с представлениями, которые должны поворачиваться / изменять размер.

Надеюсь, я ответил на ваш вопрос, и вы сочтете это полезным!

...