【发布时间】:2017-02-10 17:56:45
【问题描述】:
我有一个应用程序,只要用户在屏幕上按下,它就会为仪表上的针设置动画。当手指抬起时,我需要知道针的旋转角度。手指一抬起,我就删除了所有动画,但我不知道如何获得针的当前旋转角度。
【问题讨论】:
标签: 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 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 = degrees 和 rad = radians 的位置
解释: 第一行是获取弧度,第二行是用弧度乘以弧度,得到度数。
注意事项:
在CGAffineTransform(rotationAngle: someValue)中,someValue其实就是角度的弧度,不是用度数来衡量的。更多信息:
CGFloat.pi 的弧度值是 180,因此您可以根据此测试任何角度。
如果这有帮助,请告诉我!
【讨论】: