Одноступенчатый по сравнению с Двухэтапной Анимацией для приложений для iPhone?

Что такое и двухэтапная анимация единственная состояния для вращения окна iPhone?

Это - "ошибочное" сообщение, я вхожу в Консоль отладки (ничто не отказывает):

Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.

Я работал через книгу "Начинающийся iPhone Development: Исследуя iPhone SDK" Apress (Dave Mark, Jeff LaMarche) на Проекте Подкачки.

16
задан Devoted 12 January 2010 в 12:15
поделиться

5 ответов

Все объясняется в ссылке класса UIViewController . Особенно проверяйте ротацию View в разделе .

Из ссылки:

Обработка вращений просмотра

по умолчанию, класс UIViewController Отображает представления только в портретном режиме. Для поддержки дополнительных ориентаций, Вы должны переопределить ВОЛНУТАТОРОТАЛЕНТАЦИЯ: метод и верните да для любого Ориентации Ваш подкласс поддерживает. Если автосалонные свойства вашего Представления настроены правильно, что Может быть все, что вам нужно сделать. Тем не мение, Класс UIViewController обеспечивает Дополнительные крючки для реализации Дополнительное поведение по мере необходимости.

Чтобы временно отключить функции, которые не нужны или в противном случае вызвать проблемы во время ориентации изменить, вы можете переопределить WilrotateTeTiointerfaceorentation: продолжительность: метод и выполнение необходимых действий там. Затем вы можете переопределить DidrotateFromInterFaceorentation: метод и использовать его для повторного использования тех Особенности после изменения ориентации завершено.

Если вы хотите выполнить пользовательские анимации во время ориентации изменить, вы можете сделать это в одном из двух способы. Изменения ориентации, используемые для происходят в двух шагах, с уведомлениями происходит в начале, середине, и конечные точки вращения. Тем не менее, в iPhone OS 3.0 поддержка была добавлено для выполнения ориентации изменения за один шаг. Используя один шаг Изменение ориентации имеет тенденцию быть быстрее чем старший двухэтапный процесс и Обычно рекомендуется для любого нового код.

Чтобы добавить анимацию на один шаг Изменение ориентации, переопределяют WillanimatorotationTTointerfaceorentation: продолжительность: метод и выполнить ваши анимации там. Использовать более старые два шага метод, переопределить один или оба из WillanimateFirsthalfofrotationTointerFactorientation: продолжительность: и WillanimateCondHalfofrotationFromInterFaceorentation: продолжительность: Методы настроить вашу анимацию перед каждым шагом. Вы должны выбрать только одна техника и переопределить только Методы, связанные с этим техника. Если вы переопределите либо метод, связанный с двумя шагом Техника, контроллер просмотра использует Эта техника по умолчанию.

15
ответ дан 30 November 2019 в 21:28
поделиться

Я изменил метод willAnimateFirstHalfOfRotationToInterfaceOrientation: duration: на метод willAnimateRotationToInterfaceOrientation: duration: , и предупреждение пропало.

Спасибо.

3
ответ дан 30 November 2019 в 21:28
поделиться

Ответ Эда Марти правильный. Причина, по которой это произойдет, если вы не отменяете какую-либо анимацию вращения, вероятно, заключается в том, что вы ответили «ДА» на shouldAutorotate .. для некоторого вида. Если вы вообще не реализуете вращение, вам просто не следует переопределять метод shouldAutorotate ... Если вы переопределите этот метод, просто переопределите метод одношагового вращения и передайте его супер.

1
ответ дан 30 November 2019 в 21:28
поделиться

В моем случае виновником является UIImagePickerController (я также не переопределяю анимацию вращения):

[self presentModalViewController:imagePicker animated:YES];

Замена imagePicker на общий UIViewController не вызывает никаких предупреждений.

3
ответ дан 30 November 2019 в 21:28
поделиться

Если вы используете iOS 4 и получаете это предупреждение, я нашел способ избавиться от него. В вашем info.plist есть пункт "Поддерживаемые ориентации интерфейса". Выберите, какие ориентации поддерживает ваше приложение, и двухэтапные предупреждения исчезнут при вызове imagePicker.

1
ответ дан 30 November 2019 в 21:28
поделиться