UIPanGestureRecognizer не работает должным образом - PullRequest
0 голосов
/ 06 января 2020

Следующий код используется для изменения цвета спрайтов, когда мой палец перемещается по ним. Это работает, но спрайты меняют цвет только после окончания жеста. Например, я начинаю с панорамирования по спрайтам и рисую форму - при панорамировании ничего не меняется - затем поднимаю палец, и спрайты меняют цвет.

операторы печати сообщают правильные имена спрайтов и все операторы печати запускаются ... но изменение цвета спрайта не ... до конца.

Меня сбивает с толку, поэтому я надеюсь, что кто-то может объяснить.

   @objc func drawingpan(_ recognizer: UIPanGestureRecognizer) {

    recognizer.minimumNumberOfTouches = 1
    if recognizer.state == .began {

        print("drawingbegan")
        var touchLocation = recognizer.location(in: recognizer.view)
        var touchLocation2 = self.convertPoint(fromView: touchLocation)
        let nn = nodes(at: touchLocation2)
        if nn.count > 0 {
            if let dotSpriteTapped = nn.first! as? SKSpriteNode {
                print("touchebeganpan",dotSpriteTapped.name)
                for spritesquare in MyVariables.allsprites {
                    if dotSpriteTapped.name == spritesquare.name {
                        print("changecolorpan",dotSpriteTapped.name)
                        spritesquare.color = UIColor.red
                    }
                }}
        }
    }

} else if recognizer.state == .changed {
print("touchechangedx")

var touchLocation = recognizer.location(in: recognizer.view)
var touchLocation2 = self.convertPoint(fromView: touchLocation)
let nn = nodes(at: touchLocation2)
if nn.count > 0 {
    if let dotSpriteTapped = nn.first! as? SKSpriteNode {
        for spritesquare in MyVariables.allsprites {
            if dotSpriteTapped.name == spritesquare.name {
                print("namesmatch",dotSpriteTapped.name)
                spritesquare.color = UIColor.red
}
}}
}
}


    } else if recognizer.state == .ended {
    //recognizer.cancelsTouchesInView = false
    }}
...