Mostrar UIView1 por encima de UIView2, pero tener UIView2 por encima de UIView1 por input

Este es un escenario extraño, pero tengo dos UIViews superpuestas, y necesito mostrar uno encima del otro, pero doy la prioridad más baja al recibir la input. Si eso tiene algún sentido. Puedo aclarar si es necesario.

Preferiblemente, quisiera hacer esto en Interface Builder, pero suponiendo que no sea posible, ¿hay alguna forma de hacerlo mediante progtwigción?

Edit: Lo tengo funcionando, gracias a @ jaydee3. Simplemente anule el hitTest: method de UIView1 de la siguiente manera. UIView2 es self.otherView .

 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if (self.otherView && [self.otherView pointInside:[self.otherView convertPoint:point fromView:self] withEvent:event]) { return [self.otherView hitTest:[self.otherView convertPoint:point fromView:self] withEvent:event]; } return [super hitTest:point withEvent:event]; } 

En caso de que no necesite input en la vista 1, simplemente configure view1.userInteractionEnabled = NO . Esto se puede hacer en IB.

De lo contrario, debes usar un código. P.ej. Subclass UIView para la vista1 y anula el hitTest: … Si el punto tocado se superpone con la otra vista, devuelva [view2 hitTest: …] .