Halten Sie die Taste gedrückt, um das Feuer zu wiederholen.

Ich habe auf unzählige andere Fragen zum Drücken und Halten von Tasten verwiesen, aber es gibt nicht viele, die mit Swift zu tun haben. Ich habe eine Funktion mit dem touchUpInside-Ereignis mit einer Taste verbunden:

@IBAction func singleFire(sender: AnyObject){
    //code
}

... und eine andere Funktion, die die obige Funktion wiederholt aufruft, während dieselbe Taste gedrückt gehalten wird, und stoppt, wenn die Taste nicht mehr gedrückt wird:

@IBAction func speedFire(sender: AnyObject){

    button.addTarget(self, action: "buttonDown:", forControlEvents: .TouchDown)
    button.addTarget(self, action: "buttonUp:", forControlEvents: .TouchUpOutside)

    func buttonDown(sender: AnyObject){
        timer = NSTimer.scheduledTimerWithTimeInterval(0.3, target: self, selector: "singleFire", userInfo: nil, repeats: true)     
    }

    func buttonUp(sender: AnyObject){
        timer.invalidate()
    }
}

Ich bin mir nicht sicher, was ich falsch mache, und ich weiß nicht, wie ich Touch-Events für eine andere Funktion auf dieselbe Schaltfläche einstellen soll.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage