Estoy tratando de deshabilitar 1 de los 3 reconocedores de gestos que he agregado a una vista, ¿alguien sabe cuál es el código correcto?
Esto es lo que tengo hasta ahora:
// the gesture recognizer i'm trying to disable let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:))) myImageView1.addGestureRecognizer(tap) // the code to disable it let allGRs = [currentView.gestureRecognizers] for g in allGRs { if let g as? UITapGestureRecognizer { g.isEnabled = false } }¡Gracias!
¡Espero que esto le pueda ayudar!
Agregue un nombre único a su UITapGestureRecogniser
let tapName = "100" //Any unique name func addGestureRecognisers() { let view = UIView() // Your view in your context. I just added to test my code let tap = UITapGestureRecognizer(target: self, action: action: #selector(self.handleTap(_:))) tap.name = tapName view.addGestureRecognizer(tap) } Filtre UITapGestureRecognisers y luego Filtre el resultado por name .
func disableTapGesture(from view: UIView) { view.gestureRecognizers?.filter({$0.name == tapName}).first?.isEnabled = false }Debe asignar la propiedad de nombre a su reconocedor de gestos.
tap.name = "myTapGesture"
Y luego puede recorrer los recozniers y solo deshabilitar el que desee.
for aRecognizer in view.gestureRecognizers { if let name = aRecognizer.name { if name == "myTapGesture" { aRecognizer.isEnabled = false } } }