当用户触摸它并在其上顺时针方向移动手指时,我试图使 aUIImageView
逆时针旋转。
基本上,一旦触摸结束,我希望 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);
}];
}
我尝试查看这篇文章,但有几个问题
- 动画完成后我无法再触摸和旋转图像
- 它总是以顺时针方向动画,我无法弄清楚如何让它从用户结束旋转图像的点顺时针顺时针旋转。