titlelabel guidelines color buttons ios objective-c uibutton

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.



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