Анимируйте переключатель, используя последовательность изображений - PullRequest
2 голосов
/ 10 декабря 2011

Я хотел бы знать, как решить мою проблему. У меня есть последовательность изображений, которая в основном анимирует переключатель.

enter image description here

Я бы хотел реализовать это в iOS. Как бы вы посоветовали мне пойти на это? Может быть, с помощью UIButton? А точнее UISwitch?

Ответы [ 2 ]

2 голосов
/ 10 декабря 2011

Для довольно простого решения (переключатели касания, никакое движение не возможно), я бы посоветовал вам использовать два UIView'а в стеке.

-1- Внизу используйте UIImageView, который позволяет запускать анимации изображений.

-2- Вверху используйте UIControl, который будет захватывать события касания изнутри.

В качестве альтернативы вы можете использовать UITapGestureRecognizer вместо -2-. Последний вариант следует рассматривать только в том случае, если полученный элемент управления не будет использоваться для iOS <3.2. </p>

Как только ваш распознаватель касаний (UIControl или UITapGestureRecognizer) получает событие касания, вы просто воспроизводите анимацию, предоставленную через UIImageView.

Для получения дополнительной информации об анимациях с использованием UIImageView см. Ссылку на класс , в частности, о таких вещах, как animationImages (массив изображений).

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

Для более сложного решения (переключатели касания возможны) можно добавить UISwipeGesture Recognizer к своему пользовательскому элементу управления и использовать статус этого UIGestureRecognizer, чтобы выбрать видимое в данный момент изображение вашего UIImageView.

0 голосов
/ 10 декабря 2011

iOS 5 позволяет создавать анимированные UIImages. Вы можете поместить анимированный UIImage прямо в UIButton и анимировать его при нажатии кнопок Анимированный UIImage

...