通过触摸校准旋转速度
Posted
技术标签:
【中文标题】通过触摸校准旋转速度【英文标题】:Calibrate rotation speed with touch 【发布时间】:2014-09-06 09:00:14 【问题描述】:我正在使用以下方式旋转视图:
override func touchesMoved(touches: NSSet, withEvent event: UIEvent)
for touch in touches
rotatableView.transform = CGAffineTransformMakeRotation(degreesToRadian(i++))
无论如何,我可以用移动触摸的速度来校准这个旋转吗?
【问题讨论】:
【参考方案1】:据我了解,您希望 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
【讨论】:
以上是关于通过触摸校准旋转速度的主要内容,如果未能解决你的问题,请参考以下文章
iOS OpenGL ES 2.0 GLKit GLKMatrix4 触摸结束后旋转