Superview ignora UserInteractionEnabled = NO?

Tengo una subvista que va a la pantalla animada, y cuando está en la pantalla, quiero que la vista de supervisión (en mi caso, la vista en segundo plano), ignore los events táctiles. Probé todo pero no funciona.

¿Hay alguna forma de "forzar" la supervisión para que deje de recibir events táctiles?

¡Gracias!

Cuando dices la supervisión, supongo que te refieres a la supervisión de la vista animada. La documentation de Apple es muy poco específica sobre userInteractionEnabled , pero creo que si la configura en false, deshabilita los events táctiles en la vista específica, pero no en sus subvistas. Sugeriría que lo hagas de forma recursiva. Aquí hay un ejemplo de código que podría usar para deshabilitar / habilitar TODOS los events táctiles en una vista:

 - (void)setInteraction:(BOOL)allow onView:(UIView *)aView { [aView setUserInteractionEnabled:allow]; for (UIView * v in [aView subviews]) { [self setInteraction:allow onView:v]; } } 

A continuación, puede llamar a esto en su supervisión [self setInteraction:NO onView:[self superview]] . Esto, por supuesto, también deshabilitaría sus events táctiles, ya que los está desactivando de forma recursiva en su supervisión. Por supuesto, siempre puede volver a habilitar sus events táctiles [self setUserInteractionEnabled:NO] .

Además, la reference de class UIView de Apple menciona que algunos componentes de la interfaz de usuario anulan este método:

Nota : algunas subclasss UIKit anulan esta propiedad y devuelven un valor pnetworkingeterminado diferente. Consulte la documentation de cualquier class que use para determinar si devuelve un valor diferente para esta propiedad.