iPhone Autorotate: заменить анимацию вращения на постепенное исчезновение / исчезновение? - PullRequest
2 голосов
/ 16 октября 2010

Кто-то ранее задавал аналогичный вопрос ранее, но мне интересно знать, позволит ли функция автоматического поворота iPhone SDK заменить анимацию вращения на другой переход, как исчезновение / исчезновение. Для модального представления мы можем установить modalTransitionStyle, но такого свойства для автоматического поворота не существует.

Если я не могу использовать встроенную функциональность, как еще я могу реализовать эту функцию?

Ответы [ 2 ]

0 голосов
/ 16 октября 2010

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

Я должен сказать, однако, что в моем случае я хотел иметь контроль надкак вращение было реализовано.Я хотел, чтобы основной макет оставался фиксированным, одновременно вращая несколько подпредставлений в концерте.Я не могу придумать вескую причину полностью заменить вращение на постепенное исчезновение;это просто запутает пользователей без веской причины.Единственная причина, по которой я могу использовать эффект затухания, заключается в том, что вы хотите переключиться на существенно другой интерфейс, но даже в этом случае нет причин подавлять эффект поворота.

0 голосов
/ 16 октября 2010

Есть метод willAnimateRotationToInterfaceOrientation:duration:, из документов:

Реализация по умолчанию этот метод ничего не делает. если ты переопределить этот метод, вы не должны переопределить либо willAnimateFirstHalfOfRotationToInterfaceOrientation: продолжительность: или же willAnimateSecondHalfOfRotationFromInterfaceOrientation: продолжительность: способ.

Этот метод вызывается из анимационный блок, который используется для поворота вид. Вы можете переопределить этот метод и использовать его для настройки дополнительных анимации, которые должны происходить во время вращение вида. Например, вы может использовать его для регулировки уровня масштабирования вашего контента, поменяйте скроллер положение, или изменить другой анимируемый свойства вашего взгляда.

Полагаю, вы можете изменить его отсюда, а также до и после с помощью – willRotateToInterfaceOrientation:duration: и – didRotateFromInterfaceOrientation:.

Это кажется мне неэффективным и неподходящим, поскольку фактически не заменяет переход.

Я бы создал категорию в UIView, которая включает такие методы, как - willRotateUsingTransition:, и передал бы параметр, который скажет ему исчезнуть, а затем установил бы альфа представления в ноль. В каждом подклассе переопределите это, чтобы включить любые подпредставления, которым необходимо изменить их альфа, если это применимо. Вызывайте этот метод, когда представления должны быть повернуты (с помощью методов, описанных выше), а затем метод очистки, который восстанавливает альфы, когда они появятся снова.

Редактировать: Docs Docs Docs. Беглый взгляд, опять же, показывает этот метод: - (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration, который я считал устаревшим. В рамках обсуждения он содержит текст из второго абзаца, который я разместил в документах ранее.

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