Drücken und halten Sie die Taste für repeat "Feuer"

Ich genannt habe unzählige andere Fragen über ein drücken-und-halten-Taste, aber es gibt nicht viele Verwandte zu Swift. Ich habe eine Funktion verbunden, um eine Schaltfläche mit der touchUpInside Veranstaltung:

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

...und eine andere Funktion ist dazu gedacht, um die Funktion aufzurufen, die oben wiederholt, während die gleiche Taste gedrückt wird, und Stoppt, wenn die Taste nicht mehr gedrückt ist:

@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 Sie setup touch-events auf die gleiche Taste für verschiedene Funktionen.

InformationsquelleAutor der Frage Tim | 2015-12-12

Schreibe einen Kommentar