Почему эти две UIViews не появляются и исчезают, используя мою анимацию? - PullRequest
0 голосов
/ 15 апреля 2011

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

vView1.alpha = 0.0;
vView2.alpha = 1.0;

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.55];
[UIView setAnimationRepeatCount:0];
vView1.alpha = (vView1 == 0.0) ? 1.0 : 0.0;
vView2.alpha = (vView2 == 0.0) ? 1.0 : 0.0;
[UIView commitAnimations];

Я настроил это в viewWillAppear, на случай, если это имеет значение.

Из Apple Doc:

animationRepeatCount
Specifies the number of times to repeat the animation.

@property(nonatomic) NSInteger animationRepeatCount
Discussion
The default value is 0, which specifies to repeat the animation indefinitely.

Availability
Available in iOS 2.0 and later.
Declared In
UIImageView.h

Ответы [ 3 ]

1 голос
/ 15 апреля 2011

Класс UIImageView также имеет атрибут animationRepeatCount, когда значение 0 означает «повторяться бесконечно».Атрибут класса UIView при значении 0 означает «повторить один раз».

Вы используете анимацию UIView.

Если вы хотите повторять эту анимацию бесконечно, вы можете попробовать установить селекторчтобы выполнить, когда анимация заканчивается, используя setAnimationDidStopSelector:, который просто вызывает вашу функцию, чтобы сделать анимацию.Не забудьте также вызвать setAnimationDelegate: со значением self, чтобы ваш селектор действительно вызывался.

0 голосов
/ 15 апреля 2011

Как я понимаю ваш вопрос, вы хотите, чтобы vView1 появлялся, а затем снова исчезал.Тогда установка repeatCount в 1 должна работать.И пропустите оператор if, что-то вроде этого:

vView1.alpha = 0.0;
vView2.alpha = 1.0;

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.55];
[UIView setAnimationRepeatCount:1];
vView1.alpha = 1.0;
vView2.alpha = 0.0;
[UIView commitAnimations];
0 голосов
/ 15 апреля 2011

Из документации Apple:

repeatCount Количество повторений анимации.Это значение может быть дробным.Если указать значение 0, анимация будет выполняться один раз без повторения.

Именно поэтому анимация отображается только один раз.

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