我使用UIRotationGestureRecognizer
来旋转视图。当我释放视图,然后重新开始时,它会在返回旋转之前捕捉到Identity
旋转。我正试图弄清楚如何让它顺利地继续下一个旋转事件。我能找到的唯一一个问题,就是在这里,几年前没有得到答案。
我可以从Obj-C移植,如果有人更舒服地回答这个问题。
我确信我错过了一些明显的东西,但你是我唯一的希望,Obi Wan Stackoverflow。
func rotateToRotate(rotationRecognizer: UIRotationGestureRecognizer) {
let rotation = rotationRecognizer.rotation
if rotationRecognizer.state == UIGestureRecognizerState.Began {
self.view.transform = CGAffineTransformMakeRotation(0 + self.lastRotation)
return
}
if rotationRecognizer.state == UIGestureRecognizerState.Ended {
self.view.transform = CGAffineTransformMakeRotation(rotation)
self.lastRotation = rotation
return
}
self.view.transform = CGAffineTransformMakeRotation(rotation)
}
答案 0 :(得分:0)
原来,自动完成程序让我绊倒了。 CGAffineTransformMakeRotation
与CGAffineTransformRotate
不同。前者不会改变CGAffineTransformIdentity
,后者会改变。{/ p>
更正后的代码:
func rotateToRotate(rotationRecognizer: UIRotationGestureRecognizer) {
let rotation = rotationRecognizer.rotation
self.view.transform = CGAffineTransformRotate(self.view.transform, rotation)
rotationRecognizer.rotation = 0.0
}