Я работаю над игрой-головоломкой, и мне нужно поворачивать кусочки головоломки на угол 90
градусов при каждом двойном нажатии.
Я пытался сделать это, используя два разных способа.Первый метод таков:
[UIView beginAnimations:@"rotate" context:nil];
[UIView setAnimationDuration:0.5];
self.transform = CGAffineTransformMakeRotation(90);
[UIView commitAnimations];
Единственные проблемы с этим заключаются в том, что кусок НЕ вращается 90
градусов;он вращается примерно на 100
градусов, и эта анимация изменяет кадр фрагмента головоломки UIView
.
Это мой вывод консоли:
frame BEFORE ROTATION: {{35, 178}, {80, 80}}
frame AFTER ROTATION: {{21.3172, 164.317}, {107.366, 107.366}}
Второй методЯ попробовал вот что:
CABasicAnimation* spinAnimation = [CABasicAnimation
animationWithKeyPath:@"transform.rotation"];
spinAnimation.toValue = [NSNumber numberWithFloat:1];
[self.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
Проблема с этим методом в том, что после завершения вращения он возвращает мой UIView
в прежнее состояние.
Как мне повернутькусок головоломки с анимацией без этих проблем?