iPhone: click la vue derrière le transparent UIScrollView

J'ai un UIScrollView qui est défini pour avoir un arrière-plan clair. Une partie de la scrollview a du contenu, mais pas une partie (donc elle montre d'autres vues derrière). Je voudrais être en mesure de cliquer à travers le UIScrollView et à la MKMapView derrière, mais seulement pour la partie transparente de l'UIScrollView.

J'ai trouvé un code que j'ai du mal à comprendre comment travailler:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event]) [self.nextResponder touchesBegan:touches withEvent:event]; } 

Quelqu'un pourrait-il m'aider à comprendre comment transférer un événement tactile à une vue qui est derrière une autre vue? Puis-je appeler – (void) touchesBegan: (NSSet *) touche l'événement Event: (UIEvent *) d'un UIViewController?

Ce que nous avons fait a été de sous-classr UIScrollView et d'implémenter une logique qui transfère la responsabilité aux vues sous-jacentes, si le toucher se produit à l'intérieur de la zone transparente .

Dans notre cas, la zone transparente est définie par contentOffset de 120 sur l'axe Y, ce qui signifie que notre contenu commence à 120 points en dessous du début de l'UIScrollView, et le code ressemble à ceci:

 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { if (self.contentOffset.y < 0 && point.y < 0.0) { return NO; } else { return YES; } } 

Évidemment, cette réponse est bien au-delà de sa prime mais j'espère que cela est utile à quiconque cherche une solution.

Fondamentalement, c'est à vous de déterminer quels events tactiles vous souhaitez transmettre à un autre répondeur. Si vous souhaitez simplement transférer tous les events tactiles, supprimez simplement cette instruction if dans le code que vous avez posté afin que le prochain répondeur reçoive tous les events tactiles.