usar titulos tag que hacer cursiva como ios swift uigesturerecognizer uitapgesturerecognizer

ios - titulos - Pulsación de botón y gesto de pulsación larga.



tags h2 (1)

Es difícil decir qué no funciona con su código, con las dos únicas filas que ha proporcionado, pero le recomendaría que lo haga de esta manera:

Crear una salida a su botón en su lugar

@IBOutlet weak var myBtn: UIButton!

Y en tu viewDidLoad() agrega los gestos a los botones

let tapGesture = UITapGestureRecognizer(target: self, action: "normalTap") let longGesture = UILongPressGestureRecognizer(target: self, action: "longTap:") tapGesture.numberOfTapsRequired = 1 myBtn.addGestureRecognizer(tapGesture) myBtn.addGestureRecognizer(longGesture)

Y luego crear las acciones para manejar los grifos.

func normalTap(){ print("Normal tap") } func longTap(sender : UIGestureRecognizer){ print("Long tap") if sender.state == .Ended { print("UIGestureRecognizerStateEnded") //Do Whatever You want on End of Gesture } else if sender.state == .Began { print("UIGestureRecognizerStateBegan.") //Do Whatever You want on Began of Gesture } }

Versión Swift 3.0:

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.normalTap)) let longGesture = UILongPressGestureRecognizer(target: self, action: Selector(("longTap:"))) tapGesture.numberOfTapsRequired = 1 myBtn.addGestureRecognizer(tapGesture) myBtn.addGestureRecognizer(longGesture) func normalTap(){ print("Normal tap") } func longTap(sender : UIGestureRecognizer){ print("Long tap") if sender.state == .ended { print("UIGestureRecognizerStateEnded") //Do Whatever You want on End of Gesture } else if sender.state == .began { print("UIGestureRecognizerStateBegan.") //Do Whatever You want on Began of Gesture } }

Sintaxis actualizada para Swift 4.x:

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(normalTap(_:))) tapGesture.numberOfTapsRequired = 1 myBtn.addGestureRecognizer(tapGesture) let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(longTap(_:))) myBtn.addGestureRecognizer(longGesture) @objc func normalTap(_ sender: UIGestureRecognizer){ print("Normal tap") } @objc func longTap(_ sender: UIGestureRecognizer){ print("Long tap") if sender.state == .ended { print("UIGestureRecognizerStateEnded") //Do Whatever You want on End of Gesture } else if sender.state == .began { print("UIGestureRecognizerStateBegan.") //Do Whatever You want on Began of Gesture } }

Estoy teniendo un pequeño problema con los gestos.

Estoy tratando de usar el toque y la pulsación prolongada en el mismo botón, así que he usado

@IBAction func xxx (sender: UITapGestureRecognizer)

y

@IBAction func xxx (sender: UILongPressGestureRecognizer)

pero mi botón parece reaccionar a ambas funciones cuando toco. ¿Qué podría estar mal?

func long(longpress: UIGestureRecognizer){ if(longpress.state == UIGestureRecognizerState.Ended){ homeScoreBool = !homeScoreBool }else if(longpress.state == UIGestureRecognizerState.Began){ print("began") } }