我的问题是,touchesBegan()
没有被其他项目调用。因此,我的其他项目一定与众不同。现在我有了主意,下面的代码可以防止调用touchesBegan()
:
在didMove()
中tapRec.addTarget(self, action:#selector(GameScene.tappedView(_:) ))
tapRec.numberOfTouchesRequired = 1
tapRec.numberOfTapsRequired = 1
self.view!.addGestureRecognizer(tapRec)
功能:
@objc func tappedView(_ sender:UITapGestureRecognizer) {
let point:CGPoint = sender.location(in: self.view)
print("Single tap")
print(point)
}
touchesBegan()
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let locationUser = touch.location(in: self)
if self.atPoint(locationUser) == background {
print("background touch")
}
}
}
我想到上面的功能tappedView()
是不执行touchesBegan()
的罪魁祸首,因为触摸屏幕而不是touchesBegan()
时会调用此功能。
有没有一种方法可以同时使用touchesBegan()
和tappedView()
而不互相阻塞?
谢谢。