ios - guidelines - ¿Por qué no se llama a mi evento de "retoque interno" para mi UIButton?
menu ios (9)
He hecho muchos botones y no puedo entender por qué este no funciona.
Mi jerarquía está configurada así:
View -> Scroll View -> Subview -> Button
Hay muchos otros elementos en esta subvista y cada uno de ellos funciona cuando se tocan. En el generador de interfaces puedo ver que el evento " Retocar el interior " está vinculado a mi método
"- (IBAction)favoritesButtonDepressed:(id)sender"
.
Sin embargo, cuando hago clic en el botón, ese método nunca se ejecuta y mi punto de ruptura nunca se alcanza.
Noté que incluso cuando mantengo presionada la tecla, la etiqueta no cambia de color (a pesar de que el toque resaltado está habilitado), pero mi otro botón en la vista sí lo hace.
La interacción del usuario está habilitada en el botón, así como también en toda la jerarquía.
Para que mis elementos en la vista secundaria reciban eventos táctiles, hice que mi vista de desplazamiento se viera como la 4ª respuesta en esta publicación .
Ajá, lo tengo. Resulta que la subvista que contenía el botón (junto con los otros controles) tenía una altura de 740 y el botón estaba en una Y de 781. Mover el botón solucionó el problema. Como todo se mostraba correctamente, no pensé en verificar la altura de la subvista.
Consulte las siguientes discusiones que pueden ayudarlo a que el evento UIButton ''Touch Up Inside'' no funcione. ''Touch Down'' funciona bien
UIButton retoque el evento interno que no funciona en ios5 mientras que está bien en ios6
El evento UIButton ''Touch Up Inside'' no funciona. ''Touch Down'' funciona bien
Creo que ha colocado su botón en UIImageView; si es así, debe habilitar el UserInteraction para ese UIImageView. Por favor, compruebe.
En mi caso, IBAction para el botón no funcionaba, lo intenté de muchas maneras. Así que hice una IBOutlet para el botón y agregué acción de clic usando el método "addTarget" funcionó como un amuleto.
[myButton addTarget:self action:@selector(dismissClickFunction:) forControlEvents:UIControlEventAllEvents];
Otra cosa a considerar es ¿has colocado otra vista encima?
Por ejemplo, si carga otra vista desde una plumilla y la encuadra incorrectamente, puede aparecer en la parte superior del botón, interceptando así cualquier imprenta.
Puede verificar que este es XCode 6 con el control "Debug View Heirachy".
Si se implementa un UITapGestureRecognizer
en cualquiera de las Super vistas de su botón. entonces no se disparará UIButtonEventTouchUpInside
.
deberías implementar UITapGestureRecognizer como este
tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecognized:)];
[tapGesture setCancelsTouchesInView:NO]; // This should do what you want
[tapGesture setDelegate:self];
Tener el diseño se ve como:
Ver -> Subvista (UIView) -> Botón
Se soluciona marcando la casilla "Interacción del usuario habilitada" en los atributos de Subvista (UIView).
Tuve algo similar recientemente;
Intente eliminar la (IBAction)favoritesButtonDepressed:(id)sender
declaración del (IBAction)favoritesButtonDepressed:(id)sender
(y el método) en su Controlador, y "arrastrarlo" de nuevo desde Interface Builder.
Asegúrate de que tu botón esté dentro de los límites de SuperView ,
Si se coloca un botón fuera de los límites de superView, no se podrá hacer clic en el botón,
debido a la implementación de la función hitTest