Pasando por toques a UIViews debajo de

Tengo unUIView con 4 botones y otroUIView en la parte superior de la vista de botones. La vista superior contiene unaUIImageView con unUITapGestureRecognizer en eso

l comportamiento que intento crear es que cuando el usuario toca elUIImageView se alterna entre ser pequeño en la esquina inferior derecha de la pantalla y animarse para hacerse más grande. Cuando es grande, quiero que los botones en la vista inferior estén deshabilitados y cuando es pequeño y en la esquina inferior derecha, quiero que se pasen los toques a los botones y que funcionen normalmente. Ya casi estoy allí, pero no puedo obtener los toques para pasar a los botones a menos que desactive laUserInteractions de la vista superior.

Tengo esto en miinitWithFrame: de la vista superior:

// Add a gesture recognizer to the image view
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
tapGestureRecognizer.cancelsTouchesInView = NO;
[imageView addGestureRecognizer:tapGestureRecognizer];
[tapGestureRecognizer release];

y esta es miimageTapped: método:

- (void) imageTapped:(UITapGestureRecognizer *) gestureRecognizer {
    // Toggle between expanding and contracting the image
    if (expanded) {
        [self contractAnimated:YES];
        expanded = NO;
        gestureRecognizer.cancelsTouchesInView = NO;
        self.userInteractionEnabled = NO;
        self.exclusiveTouch = NO;
    }
    else {
        [self expandAnimated:YES];
        expanded = YES;
        gestureRecognizer.cancelsTouchesInView = NO;
        self.userInteractionEnabled = YES;
        self.exclusiveTouch = YES;
    }
}

Con el código anterior, cuando la imagen es grande, los botones están inactivos, cuando toco la imagen se encoge y los botones se activan. Sin embargo, la imagen pequeña no recibe los toques y, por lo tanto, no se expandirá.

Si configuroself.userInteractionEnabled = YES en ambos casos, la imagen se expande y contrae cuando se toca, pero los botones nunca reciben toques y actúan como si estuvieran deshabilitados.

¿Está lejos para que la imagen se expanda y se contraiga cuando se toca, pero los botones debajo solo reciben toques si la imagen está en estado contraído? ¿Estoy haciendo algo estúpido aquí y me falta algo obvio?

Me estoy volviendo loco tratando de hacer que esto funcione para que cualquier ayuda sea apreciada,

Dave

ACTUALIZAR

Para más pruebas, anulé latouchesBegan: ytouchesCancelled: métodos y llamó a sus súper implementaciones en mi vista que contiene el UIImageView. Con el código anterior, latouchesCancelled: nunca se llama y eltouchesBegan: siempre se llama.

or lo tanto, parece que la vista está recibiendo los toques, simplemente no se pasan a la vista debajo.

ACTUALIZA

¿Esto se debe a la forma en que funciona la cadena de respuesta? Mi jerarquía de vistas se ve así:

VC - View1
     -View2
      -imageView1 (has tapGestureRecogniser)
      -imageView2
     -View3
      -button1
      -button2

Creo que el sistema operativo primero realiza una prueba de éxito, ya que dice que View2 está al frente, por lo que debería recibir todos los toques y nunca se pasan a View3 a menos que userInteractions esté establecido en NO para View2, en cuyo caso también se impide que imageView1 reciba toques. ¿Es así como funciona y hay una manera para que View2 pase por sus toques a View3?

Respuestas a la pregunta(12)

Su respuesta a la pregunta