Создание разветвленной основной анимации - PullRequest
0 голосов
/ 09 января 2010

Я хотел бы создать анимацию, которая начинается с появления маленького круга, а затем прогрессирует так:

  • Появляется 2-й большой круг
  • Появляется третий большой круг
  • 1-й маленький круг исчезает
  • 4 появляется большой круг
  • 2-й круг исчезает

и, вероятно, до шести или около того кругов.

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

Вероятно, я мог бы сделать это с несколькими UIImageViews и таймером. Но есть ли лучший способ?

Ответы [ 2 ]

1 голос
/ 09 января 2010

Я не эксперт по основной анимации, но посмотрите UIView +beginAnimations:context:

Вы можете анимировать изменения в альфа для вида, подобного этому (предположим, что вид начинается с альфа 1):

[UIView beginAnimations:@"Fadeout" context:nil]
myview.alpha = 0;
[UIView commitAnimations]

Это называется блоком анимации. Все, что вы там измените, если анимация поддерживается для этого свойства представления, будет медленно меняться с того, что было раньше, до того, что вы там указали. В случае альфа, это приведет к исчезновению вида от альфа 1 до альфа 0 (в этот момент он невидим).

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

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

0 голосов
/ 23 января 2010

Почему вы не можете использовать UIImageView с массивом изображений и анимацией?

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