2009-07-22 6 views
0

alt text http://www.davidhomes.net/question.gifiphone Schnittstelle Overlay-Pass-Through Ereignisse

Ich bin farily neu iphone dev (< 3 Monate auf meiner Freizeit) und ich beginne Entwicklung meiner zweiten App.

Aus dem Bild, ich füge eine Reihe von UIViews als Unteransichten zu meinem wichtigsten UIViewController.view, die Anzahl der hinzuzufügenden Ansichten variiert basierend auf vom Benutzer auswählbaren Daten.

Jede Ansicht enthält mehrere Steuerelemente, eine Beschriftung, ein UITextField und einen horizontalen UIViewPicker.

Der Einfachheit halber habe ich hier ein (sehr rough) Mock-Up mit nur zwei Tasten eingefügt.

Da ich die GUI verbessern möchte, möchte ich ein UIViewImage als die oberen Unteransichten der hinzugefügten UIView, etwas wie im Bild, überlagern.

Die Frage besteht darin, die Ereignisse an die darunter liegenden Objekte zu übergeben. Ich habe irgendwo gelesen, dass man Clipping verwenden kann, aber die tatsächliche Form ist komplexer als nur ein ovaler Rahmen.

Irgendwo sonst habe ich gelesen, dass man vier UIImagages hinzufügen könnte, einen an jeder Grenze, der die Ereignisse durch dieses Loch laufen lassen würde. Scheint wie eine schmutzige Lösung für mich (Obwohl ich bin mir sicher, es würde funktionieren)

Irgendwelche Ideen über die beste Möglichkeit, dies zu tun? Irgendwelche Links zu einem Tutorial oder Rezept online?

ist Ihre Hilfe

dank david

Antwort

1

Sie auf Protokolle sah geschätzt haben? Sie können Protokolle für Ihre Sichten oder Objekte definieren, und die Benutzer dieses Objekts (z. B. die Unteransichten darunter) können das Protokoll implementieren, sich selbst als den Objektdelegierten festlegen und wenn Aktionen passieren, werden sie über die Protokolle benachrichtigt. So zum Beispiel

Ein AboveView wird ein Protokoll erklären, dass Methoden erklärt, wenn eine bestimmte Geste dieser Ansicht so etwas wie senced wurde - (void) didMakeCircleGesture ... als Eigenschaft der underneathview einen Delegierten haben wird, so in Ihre Methode, die hat die Geste youll am Ende so etwas wie

[delegate didMakeCircleGesture]; 

wiederum tatsächlich sence die Delegierten die Ansicht unter oder etwas sind, und es wird auf das Protokoll, das von der AboveView definiert und als Teil davon entspricht sie muss die Methode didMakeCircleGesture deklarieren, also als Ergebnis, wenn man eine Kreisgeste in der AboveView-Ansicht macht, die die co-Ansicht darunter darstellt nformed wird das Protokoll der Veranstaltung mitgeteilt werden, und es kann

+0

wow geeignete Maßnahmen ergreifen, Ich habe implementierten Protokolle aber für einfachere Dinge wie eine Suchleiste oder UIPickerView, ich Ihre Erklärung verstehen, obwohl eine komplexe Bit scheint Zu diesem Zeitpunkt (angesichts meiner Erfahrung gerade jetzt), speziell da ich mehr als ein Objekt darunter habe, muss ich auch implementieren, wo in der AboveView das Ereignis aufgetreten ist. Will versuchen, damit ein bisschen zu spielen, aber da ich dies als ein Hobby mache, kann am Ende für den 'Chiken Weg' gehen (Einstellung dieser 4 Bilder an den Ecken). Immer noch vielen Dank für Ihre Antwort, mal sehen, ob ich hier mehr Ideen bekommen kann grüße david –

Verwandte Themen