2009-07-22 6 views
0

alt text http://www.davidhomes.net/question.gifsuperposition d'interface iphone événements pass-through

Je suis farily nouveau pour iphone dev (< 3 mois sur mon temps libre) et je commence le développement de mon deuxième application. De l'image, j'ajoute un certain nombre d'UIViews comme sous-vues à mon UIViewController.view principal, le nombre de vues à ajouter varie basé sur des données sélectionnables par l'utilisateur.

Chaque vue contient plusieurs contrôles, une étiquette, un UITextField et un UIViewPicker horizontal.

Pour simplifier, je mets une maquette (TRÈS BRUTE) ici avec seulement deux boutons. Parce que je veux améliorer l'interface graphique, je veux superposer un UIViewImage comme les sous-vues supérieures de l'UIView ajouté, quelque chose comme dans l'image.

La question est de passer les événements aux objets situés en dessous. J'ai lu quelque part que l'one-way était d'utiliser l'écrêtage, mais la forme réelle est plus complexe que juste un cadre ovale. Quelque part d'autre, j'ai lu que l'on pouvait ajouter quatre UIImages, une à chaque frontière, qui laisserait passer les événements à travers ce trou. On dirait une solution sale pour moi (Bien que je suis sûr que cela fonctionnerait)

Des idées sur la meilleure façon de faire cela? Des liens vers un tutoriel ou une recette en ligne?

Votre aide est appréciée

grâce david

Répondre

1

Avez-vous regardé les protocoles? Vous pouvez définir des protocoles pour vos vues ou objets, et les utilisateurs de cet objet (les sous-vues en dessous par exemple) peuvent implémenter le protocole, se définir comme les objets délégués et quand les actions arrivent, ils seront notifiés via les protocoles. Ainsi, par exemple

Un AboveView déclarera un protocole qui déclare les méthodes quand un certain geste a été senced par ce point de vue donc quelque chose comme - (void) didMakeCircleGesture ... comme propriété du underneathview aura un délégué, donc en votre méthode qui sence en fait le geste youll à quelque chose de fin comme

[delegate didMakeCircleGesture]; 

à son tour le délégué est la vue en dessous ou quelque chose, et il sera conforme au protocole défini par le AboveView, et dans le cadre de celui-ci, il devra déclarer la méthode didMakeCircleGesture, de sorte que lorsque l'on fait un geste de cercle dans la vue AboveView ci-dessous co nformed au protocole sera dit de l'événement et il peut prendre des mesures appropriées

+0

wow, j'ai mis en place des protocoles, mais pour des choses simples comme une barre de recherche ou UIPickerView, Je ne comprends votre explication, bien que semble un peu complexe pour moi à ce stade (compte tenu de mon expérience en ce moment), spécialement puisque j'ai plus d'un objet ci-dessous, je devrai également implémenter la détection d'où dans l'AboveView l'événement s'est produit. J'essaierai de jouer avec cela un peu mais comme je le fais en tant que passe-temps, je finirai peut-être par le 'Chiken Way' (mettre ces 4 images dans les coins). Encore, merci beaucoup pour votre réponse, voyons si je peux avoir plus d'idées ici salutations david –

Questions connexes