Без взаимодействия с разработчиком вы можете изменить размер представления для поддержки ориентации, во многих случаях это хорошо, но что, если вам нужно изменить макет объектов пользовательского интерфейса, чтобы он лучше соответствовал новой ориентации?
Ответ от яблок :
- Есть два отдельных ViewController с XIB, которые отражают желаемую разметку.
- Назначьте мастер ViewController (рекомендуется портрет).
- Подписаться на
beginGeneratingDeviceOrientationNotifications
- В методе уведомления (мастер), проверьте ориентацию и нажмите или выдвиньте ведомый ViewController как модальный.
По номиналу, если макет содержит несколько UITextFields, изменение ориентации очищает поля (с точки зрения пользователей), указывая на то, что метод копирования поля также необходим в методе события уведомления. Разве для этого нет автоматического обеспечения? (или альтернативный шаблон)
Но что, если вы хотите получить хорошую анимацию перевода кадров с короткой задержкой в пользовательском интерфейсе?
В качестве альтернативы, вместо того, чтобы иметь два контроллера View, я использовал CGAffineTransforms
для анимации изменений фрейма объекта пользовательского интерфейса (срабатывает на willRotateToInterfaceOrientation
) с дополнительным бонусом выглядеть сексуально, но код выглядит не очень элегантно.
Я не знаю других решений.
Чтобы добраться до сути: Какой самый эффективный и быстрый способ изменить макеты объектов пользовательского интерфейса на событиях ориентации, что предпочтительно облегчает анимацию трансляции кадров?