我试图通过用户在UIImageView上按下手指并顺时针移动手指来使其旋转,以逆时针方向进行动画处理。
基本上,一旦触摸结束,我希望UIImageView返回到其原始位置,并且应该向逆时针方向移动。
基本上,一旦触摸结束,我希望UIImageView返回到其原始位置,并且应该向逆时针方向移动。
我的问题是每次角度(以度为单位)大于180时,图像就会顺时针旋转回到其原始位置。 显然它正在采取最短的路径返回。 对于小于179度的角度,图像逆时针旋转(我需要的方向)。
我尝试了这两个代码片段,它们的行为方式相同。 有什么建议吗?
注意:这里的angle变量是double类型,初始化为零,并且在我的代码中始终保持为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);
}];
}
我尝试研究了这篇文章,但它存在几个问题:
- 动画完成后,我无法再触摸和旋转图像。
- 它总是顺时针旋转,并且我一直没有找到如何使其从用户结束旋转图像的地方平滑地逆时针旋转的方法。