如何在我的Swift应用程序中实现UIGestureRecognitor?
假设我有一个树的图像,当我点击屏幕时,它会变成一个汽车的图像,我该怎么做?这是我到目前为止的代码,但它不起作用(我有三张名为“gp1”、“gp2”和“gp3”的图像,它们都有不同的点击次数来更改图像。) 我使用的是Spritekit和Swift如何在我的Swift应用程序中实现UIGestureRecognitor?,swift,sprite-kit,Swift,Sprite Kit,假设我有一个树的图像,当我点击屏幕时,它会变成一个汽车的图像,我该怎么做?这是我到目前为止的代码,但它不起作用(我有三张名为“gp1”、“gp2”和“gp3”的图像,它们都有不同的点击次数来更改图像。) 我使用的是Spritekit和Swift class GameScene: SKScene, SKPhysicsContactDelegate { //Create Touch createTouch() } override func didMoveToView(view: S
class GameScene: SKScene, SKPhysicsContactDelegate {
//Create Touch
createTouch()
}
override func didMoveToView(view: SKView) {
func createTouch() {
gestureRecognizer.numberOfTapsRequired = 1
gestureRecognizer2.numberOfTapsRequired = 2
gestureRecognizer3.numberOfTapsRequired = 3
gestureRecognizer == UITapGestureRecognizer(target: self, action: "gp2")
gestureRecognizer2 == UITapGestureRecognizer(target: self, action: "gp3")
gestureRecognizer3 == UITapGestureRecognizer(target: self, action: "gp1")
}
}
您需要将识别器添加到视图中,并实现动作处理程序
gp2
等
对于
UIImageView
您还应该确保userInteractionEnabled
设置为true。正如Mundi所说,对于每个UIImageView,确保userInteractionEnabled=true。否则,用户将无法点击图像。然后,创建手势识别器。将动作设置为将处理手势的方法。接下来,将手势识别器添加到UIImageView。最后,编写处理手势的方法
@IBOutlet var gp1: UIImageView!
@IBOutlet var gp2: UIImageView!
@IBOutlet var gp3: UIImageView!
func createTouch() {
// maker sure userInteractionEnabled is true
gp1.userInteractionEnabled = true;
gp2.userInteractionEnabled = true;
gp3.userInteractionEnabled = true;
// create the gesture recognizers
let gestureRecognizer1 = UITapGestureRecognizer(target: self, action: "tapGesture:")
let gestureRecognizer2 = UITapGestureRecognizer(target: self, action: "tapGesture:")
let gestureRecognizer3 = UITapGestureRecognizer(target: self, action: "tapGesture:")
// set the number of taps
gestureRecognizer1.numberOfTapsRequired = 1
gestureRecognizer2.numberOfTapsRequired = 2
gestureRecognizer3.numberOfTapsRequired = 3
// add the gesture recognizer to the UIImageViews
gp1.addGestureRecognizer(gestureRecognizer1)
gp2.addGestureRecognizer(gestureRecognizer2)
gp3.addGestureRecognizer(gestureRecognizer3)
}
由于这些都是点击手势,我决定使用一种方法和一个switch语句。但是,如果愿意,您可以为每个手势创建不同的方法
func tapGesture(gesture: UITapGestureRecognizer) {
switch gesture.numberOfTapsRequired {
case 1:
gp1.image = UIImage(named: "car")
case 2:
gp2.image = UIImage(named: "car")
case 3:
gp3.image = UIImage(named: "car")
default:
break
}
}