UIGestureRecognizer recevoir toucher, mais de le transmettre à UIControl ainsi

Comment voulez-vous permettre à un UIGestureRecognizer d'un UIView pour recevoir un événement tactile, mais aussi s'assurer que l'autre, sous-jacente/superposition UIView reçoit également le même événement tactile?

Permet de dire que j'ai la vue suivante-hierachie:
UIGestureRecognizer recevoir toucher, mais de le transmettre à UIControl ainsi

Vues (en bleu) et B (rouge) sont à la fois des sous-vues de la même superview (gris). En d'autres termes, ils sont à la fois des frères et sœurs et l'ordre décide qui couvre les autres.

Option 1:
Vue B (rouge) a une UIButton comme son sous-vue.
Option 2:
Vue d'Une (bleu) a une UIButton comme son sous-vue.

Compte tenu de l'Option 1 pour l'amour des explications:
Vue d'Une (bleu) a un UITapGestureRecognizer (ou peut-être même plus, d'autres UIGestureRecognizers) ci-joint. Quelle serait la meilleure approche élégante pour vous assurer que le UIButton ne reçoivent tous les doigts sur sa région, mais aussi à la vue d'Une (bleu) reçoit des petites touches sur son UITapGestureRecognizer?

Si possible, par tous les moyens, la solution ne devrait pas impliquer l'extension de la UIButtonde classe et manuellement la redirection de tous les événements à partir du bouton lui-même. Imaginez la vue B, contiennent beaucoup plus de contrôles et pas seulement sur un bouton. L'ensemble de ces contrôles devraient, en quelque sorte permettre de voir Un de recevoir de la main à son UIGestureRecognizer.

Je n'offrent deux options que je n'ai pas de soins qui, de ce point de vue (A ou B) qui vient en premier, tant que les deux reçoivent la touche.

Toutes mes démarches jusqu'à présent brusquement atteint culs-de-sac. Peut-être une coutume répondeur de la chaîne peut être une bonne solution? Je continue à penser qu'il doit y avoir une solution élégante à l'intérieur de l'ensemble de la UIKit/UIEvent/UIResponder pile.

  • +1 pour un tel soigneusement fabriqués à la question 🙂
InformationsquelleAutor Till | 2011-05-30