Блокирует ли swipeGesture выполнение прикосновений Began ()? - PullRequest
1 голос
/ 21 мая 2019

Моя проблема в том, что 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(), не блокируя друг друга?

Заранее спасибо.

...