iOS快速检测图像旋转

iOS快速检测图像旋转,ios,swift,uiimageview,Ios,Swift,Uiimageview,我有一个应用程序,只要用户按下屏幕上的按钮,它就可以在一米上为一根针设置动画。当手指抬起时,我需要知道针的旋转角度。我会在抬起手指后立即删除所有动画,但我不知道如何获取针的当前旋转角度。这非常简单,这是完整的解决方案: 示例设置: imageView.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 6) // just to test (it is 30 in degrees and 0.523598775598299 in r

我有一个应用程序,只要用户按下屏幕上的按钮,它就可以在一米上为一根针设置动画。当手指抬起时,我需要知道针的旋转角度。我会在抬起手指后立即删除所有动画,但我不知道如何获取针的当前旋转角度。

这非常简单,这是完整的解决方案:

示例设置:

imageView.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 6) // just to test (it is 30 in degrees and 0.523598775598299 in radians)
let rad: Double = atan2( Double(imageView.transform.b), Double(imageView.transform.a))
let deg: CGFloat = CGFloat(rad) * (CGFloat(180) / CGFloat.pi )
print(deg) // works, printing 30
代码:

imageView.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 6) // just to test (it is 30 in degrees and 0.523598775598299 in radians)
let rad: Double = atan2( Double(imageView.transform.b), Double(imageView.transform.a))
let deg: CGFloat = CGFloat(rad) * (CGFloat(180) / CGFloat.pi )
print(deg) // works, printing 30
其中
deg=度
rad=弧度

说明: 第一条线得到弧度,第二条线将弧度乘以弧度的当量,得到度


注意事项:

  • 在CGAffineTransform(rotationAngle:someValue)中,
    someValue
    实际上是角度的弧度,它不是以度为单位测量的。更多关于:

  • 弧度
    CGFloat.pi
    的值(以度为单位)为180,因此您可以根据该值对其进行任何角度的测试



  • 让我知道这是否有帮助

    太完美了!我真的需要学习高等数学。