Пользовательское вращение UIView с контроллером представления - PullRequest
2 голосов
/ 22 июня 2011

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

           -----
-------    | A |
| A B | => | B |
-------    -----

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

Как мне поступить, если я хочу, чтобы два вида вращались отдельно?

1 Ответ

2 голосов
/ 23 июня 2011

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

Сложность моего подхода заключается в том,Также необходимо переместить подпредставления в viewWillAppear, поскольку подпредставления не всегда получали сообщение через viewWillRotateToOrientation:, когда они были перемещены за пределы экрана или выгружены.

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

...