Моя проблема в том, что touchesBegan()
не вызывается, как я знаю из других проектов. Поэтому где-то должна быть разница с моими другими проектами. Теперь у меня появилась идея, что следующий код предотвращает вызов touchesBegan()
:
In 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()
, не блокируя друг друга?
Заранее спасибо.