CGAffineTransformMakeRotation всегда по часовой стрелке
Я пытаюсь оживитьUIImageView
вращать против часовой стрелки, когда пользователь касается его и перемещает палец по часовой стрелке.
По сути, я хочу, чтобы после завершения касания UIImageView вернулся в исходное положение, и он должен двигаться против часовой стрелки.
У меня проблема в том, что каждый раз, когда угол (в градусах) больше 180, изображение поворачивается по часовой стрелке в исходное положение. Очевидно, он берет кратчайший путь назад. Что касается углов 179 градусов или меньше, изображение поворачивается против часовой стрелки (что мне нужно).
Я попробовал оба этих куска кода, и они ведут себя одинаково. Какие-либо предложения?
ПРИМЕЧАНИЕ: здесь угловая переменная является двойной, и ее инициализируют равной нулю, и она остается 0 во всем моем коде
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[self handleObject:touches withEvent:event isLast:YES];
/* this doesn't make rotation counter clockwise for rotations greater than 180 */
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationCurve: UIViewAnimationCurveLinear];
[UIView setAnimationDuration:1.0];
[UIView setAnimationRepeatCount:1];
CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
circle1ImgVw.transform = CGAffineTransformRotate(transform, angle);
// ends animation
[UIView commitAnimations];
/* this doesn't make rotation counter clockwise for rotations greater than 180 */
[UIView animateWithDuration:1.0 animations:^{
circle1ImgVw.transform = CGAffineTransformMakeRotation(angle);
}];
}
Я пытался заглянуть вэта почта и есть несколько проблем с этим
Я не могу больше касаться и поворачивать изображение после завершения анимацииОн всегда анимируется по часовой стрелке, и я не смог понять, как заставить его плавно идти против часовой стрелки от точки, в которой пользователь закончил вращать изображение.