通过触摸校准旋转速度

时间:2014-09-06 09:00:15

标签: ios view swift rotation

我使用以下方式旋转视图:

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
        for touch in touches{
        rotatableView.transform = CGAffineTransformMakeRotation(degreesToRadian(i++))
        }
    }

无论如何,我可以用移动的触摸速度校准这个旋转吗?

1 个答案:

答案 0 :(得分:0)

据我了解,你希望你的UIImageView旋转速度和你的手指一样快,换句话说,你的意思是,"我的手指移动的速度,旋转的速度是多快"

从这个意义上说,这是代码

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
    let t = touches.anyObject() as UITouch
    let position = t.locationInView(self.view)

    let target = rotatableView.center        
    let angle = atan2(target.y-position.y , target.x-position.x)
    rotatableView.transform = CGAffineTransformMakeRotation(angle)

}

atan2是一个数学函数,您可以阅读更多相关信息here