2015-06-22 8 views
7

Ho chiamato un pulsante e gli ho fornito un UIGestureRecognizer in modo che IBAction venga eseguito solo quando il pulsante è premuto a lungo. A tale scopo, aggiungi UILongPressGestureRecognizer al pulsante stesso. Poi si controlla trascinare che riconoscitore gesto per una funzione come questa:Il mittente UITapGestureRecognizer è il gesto, non l'oggetto ui

@IBAction func handleGesture(sender: UIGestureRecognizer) { 
    if sender.state == UIGestureRecognizerState.Began 
    { 
     let labelTap1=UITapGestureRecognizer(target: self, action: "labelTapped:") 
     let alertController = UIAlertController(title: "**I want this to be the title of the button**", message: 
      "This is the description of the function you pressed", preferredStyle: UIAlertControllerStyle.Alert) 
     alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default,handler: nil)) 

     self.presentViewController(alertController, animated: true, completion: nil) 
    } 
} 

Come si può vedere visualizzato l'UIAlertController, voglio il titolo per mostrare i pulsanti di titolo corrente. Se il mittente di questa funzione era il pulsante, potrei chiamarlo con sender.currentTitle. Come posso ottenere il titolo del pulsante che è legato al gesto, quando il mittente della funzione è il gesto.

Ho visto messaggi di questo tipo nell'obiettivo C, ma nulla in realtà su Swift. Questo è tutto per un progetto per ottenere una descrizione di pulsanti quando si esegue una pressione prolungata sul pulsante stesso. Se qualcuno ha qualche idea su come realizzare ciò con quello che ho fatto finora, o ha un metodo diverso, per favore dimmelo.

Grazie!

risposta

14

È possibile ottenere un riferimento alla vista a cui è stato aggiunto il gesto tramite la relativa proprietà della vista. In questo caso lo stai aggiungendo al pulsante in modo che la proprietà vista ti restituisca il pulsante.

let button = sender.view as? UIButton 
+0

Ah, questo ha molto senso. Sono nuovo di swift e iOS, provenienti da uno sfondo web front-end. Grazie per l'aiuto! – modesitt

+0

Sì, la cosa che in realtà ti sta parlando è il riconoscitore di gesti; è l'agente che individua l'azione. Devi quindi chiedergli quale vista stava guardando. Non sono sicuro se questo aiuti qualcuno. – Tommy

Problemi correlati