iPhone UIView Анимация проблема с повторением - PullRequest
0 голосов
/ 20 января 2011

Привет Я просто играю с некоторой базовой анимацией UIView. Я установил счетчик повторений на 100, чтобы я мог видеть, как он идет вверх и вниз много раз я установил переход, чтобы повернуть мой взгляд на 180 градусов

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

Ниже мой код:

- (void)viewDidLoad {
[super viewDidLoad];
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI);
Shape* shapeView = [[Shape alloc] initWithShapeName:@"test" frame:CGRectMake(100, 0, 50, 50)];


[self.view addSubview:shapeView];
[UIView beginAnimations:@"test animation" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationRepeatCount:100];
shapeView.transform = trans;
[UIView setAnimationRepeatAutoreverses:YES];
shapeView.frame = CGRectMake(100,300,50,50);


[UIView commitAnimations];

[shapeView release];

}

Спасибо

1 Ответ

1 голос
/ 20 января 2011

Причина, по которой это происходит, заключается в том, что вы устанавливаете animationRepeatAutoreverses после установки преобразования.Таким образом, каждый раз, когда фигура идет вверх, это считается только 1 повторение.Принимая во внимание, что аспект вращения уже посчитал бы это как 2 повторения.

Другими словами, форма, перемещающаяся вниз и назад, составляет 1 повторение и занимает 2 секунды.Теперь, поскольку вращение не было установлено на автореверс, вращение займет всего 1 секунду, чтобы завершить 1 повторение.Таким образом, к моменту восстановления формы часть вращения уже сделала 2 повторения.Это означает, что вращение закончится через 100 секунд, а анимация вверх и вниз закончится через 200 секунд.

Надеюсь, я смог это четко объяснить.

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