我设置了Swipe Gesture Recognizer
并将其连接到代码,以便当用户向左滑动时UIImageView
旋转。
@IBAction func swipeToLeft(sender: AnyObject) {
UIView.animateWithDuration(1.0, animations: {
self.image.transform = CGAffineTransformRotate(self.image.transform, -3.14159265358979 )
})
}
我确保viewDidLoad
方法看起来像这样:
image.userInteractionEnabled = true
但是,UIImageView
只会转换一次。
您可以从此link下载项目演示。为什么会这样?
答案 0 :(得分:2)
我想,问题在于旋转图像的那一刻,与之相关的手势识别器也会旋转。你可以确保自己:
从右向左滑动。图像将旋转。然后从左向右滑动。它会再次旋转。
如果您想要始终从右向左轻扫,您可以通过以下几种方式进行:
答案 1 :(得分:2)
只是详细说明FreeNickname的答案,因为手势识别器与UIImageView
一起“旋转”,您可以将代码更改为以下内容,以便滑动手势与图像交换方向,然后您可以继续滑动从右到左触发动画:
@IBAction func swipeToLeft(sender: UISwipeGestureRecognizer) {
UIView.animateWithDuration(1.0, animations: {
self.doubleDot.transform = CGAffineTransformRotate(self.doubleDot.transform, -3.14159265358979 )
}, completion: {
(value: Bool) in
if sender.direction == UISwipeGestureRecognizerDirection.Left {
sender.direction = UISwipeGestureRecognizerDirection.Right
} else {
sender.direction = UISwipeGestureRecognizerDirection.Left
}
})
}