iPad UIInterfaceRotation равен 0, вращение испортилось при запуске приложения - PullRequest
1 голос
/ 12 сентября 2011

Полагаю, я упустил что-то действительно важное в руководствах по яблокам, что вызывает у меня эту проблему.

Я опишу, что я хочу иметь и что я получаю + что я делаю.

Преамбула:

  • Цель моей работы - приложение с экраном входа. этот экран должен быть размещен поверх всех других видов, чтобы позже исчезнуть. так что в этом случае я предполагаю, что уже нарушил правило, в случае, если я правильно понял, что «только одно главное окно».

Что я хочу:

  • с универсальным приложением √ проверка
  • с универсальным приложением, имеющим только UIInterfaceRotation для iPad √ проверка
  • нет проблем с uiinterfaceorientation или uideviceorientation при запуске, что позволяет мне показывать все виды в правильном измерении без необходимости поворачивать несколько раз, чтобы все было правильно расположено. - не проверено

Что я получу:

  • когда я запускаю приложение в альбомной ориентации, которая является ориентацией по умолчанию из моих представлений в Интерфейсном Разработчике, его совершенство выравнивается, и я могу поворачивать все, что хочу, его идеально, остается совершенным, ура
  • когда я запускаю приложение в портретной ориентации, я вижу, как на экране летают пейзажные виды - каждый раз с разной скоростью - по крайней мере, так. когда я поворачиваю приложение сейчас, вперед и назад, все выровнено, как и должно - тоже идеально, как хотелось.

Что я делаю:

  • 99% всех настроек, связанных с вращением, выполняются в конструкторе интерфейсов, в настоящее время у меня есть только несколько методов did-change-change для изменения фоновых изображений после поворота и т. Д.

я заметил, что даже когда я строю экран после того, как устройство узнает его ориентацию, это приводит к этому.

иными словами:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
      [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
      [self addEventListener:UIDeviceOrientationDidChangeNotification sel:@selector(buildScreen)];
       ....

примечание: addEventListener - это небольшая категория уведомлений, которую я создал для облегчения обработки. так что никакой магии здесь нет.

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

Так что в этом случае я действительно не знаю, что делать дальше. После настройки ориентации все идеально подходит, как я определил в IB.

Любая помощь, ссылки, код и т. Д., Ценится. Большое спасибо! Я пытался найти это, только что нашел много похожих проблем, но не нашел решения. так что немного извините, если я, кажется, задаю тот же самый вопрос, большой, если я действительно задаю.

С наилучшими пожеланиями

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Я не нашел правильного решения, поэтому я использовал multiple-xib файлы, чтобы сделать это.Это раздражает, но работает хорошо.

0 голосов
/ 13 сентября 2011

Обычно я бы не рекомендовал это, потому что я думаю, что это раздражает как пользователя, но вы можете попробовать настройку Info.plist

Initial interface orientation

и установить его в Пейзаж, если это то, что вам подходит.

Может быть временным решением проблемы.Я считаю, что ваши проблемы гораздо сложнее, чем простое наводящее на размышления решение.

...