[ 'A1', 'A2', ... ].indexOf( choice ) < 0
为什么上面的变换会顺时针旋转我的imageView而不是逆时针旋转?如何将此行为更改为后者?
编辑:
UIView.animateWithDuration(1.0, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: UIViewAnimationOptions.AllowUserInteraction, animations: {
var angle = degreesToRadians(180)
self.imageView.transform = CGAffineTransformMakeRotation(-angle)
}, completion: { (value: Bool) in })
导致发生相同的行为。
答案 0 :(得分:1)
动画正在尝试以最小的旋转量旋转视图。例如,给定90度的期望旋转,通过旋转
的视图有多种方式来实现它90 + 360 * i
度,i
可以是任何整数,正数,负数或零。在这种情况下,动画会将视图旋转90度,因为它是达到指定所需旋转的最小旋转量。另一个例子,即使你将所需的旋转设置为450(90 + 360),动画仍然只能旋转90度。
在你的情况下,180度实际上是旋转的另一面。因此,180和-180之间没有区别。如果要强制视图通过所需方向旋转,则必须将旋转分解为多个较小的旋转。在这种情况下,您可以将视图旋转90度,然后再旋转90度,以保证视图旋转所需的方向。同样,如果您希望它沿相反方向旋转,您可以进行两次-90度旋转,然后是另一次旋转。