UIView, son superview et touchesBegan:

Supposons que j'ai un UIViewController sous-classe qui prend soin de certains UIViews. Ces UIViews sont ajoutés comme des sous-vues de la UIViewController de view la propriété):

UIViewController:

- (void)viewDidLoad {
    UIImageView *smallImageView...
    [self.view addSubview:smallImageView];

    UIButton *button..
    [self.view addSubview:button];

    UIView *bigUIView.. //covers the entire screen (frame = (0.0, 0.0, 1024.0, 768.0))
    [self.view addSubview:bigUIView];
...
}

Autant que je sache, depuis le bigUIView est la première vue et couvre la totalité de l'écran, il recevra le touchesBegan:withEvent: et les autres points de vue, comme button ne recevront pas d'événement tactile.

Dans mon application bigUIView doit être le plus haut, car il possède l'un des principaux objets de l'interface utilisateur (CALayers, en fait, les principaux objets du jeu) que, lors de l'animation, doit être au-dessus de tous les autres sous-éléments de l'INTERFACE utilisateur (UIButtons, etc). Cependant, j'aimerais être en mesure d'avoir encore la UIButtons et d'autres objets dans le Répondeur de la Chaîne.

J'ai essayé la mise en œuvre de la suite dans les bigUIView classe:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    
    [self.superview touchesBegan:touches withEvent:event];

    ... hit test the touch for this specific uiview..
}

Notes:

  1. bigUIView's superview se réfère à la UIViewController de view de la propriété, est-il propager l'événement de touche à l'ensemble de sous-vues?
  2. bigUIView doit avoir userInteractionEnabled = YES car il gère également la saisie de l'utilisateur.
  3. Je ne peux pas apporter la button/smallImageView à l'avant parce qu'il apparaît ci-dessus les principaux objets du jeu (sous-couches de bigUIView).

Merci d'avance.