Entlassen anzeigen, wenn ein Benutzer auf eine Stelle außerhalb der Ansicht
Ich habe eine sehr komplexe app mit vielen gestapelten Ansichten, die enthalten viele Schaltflächen ,Zeichnung Gebiete und andere benutzerdefinierte touch-handling . Ich bin die Anzeige eines draggable helper view kann auf der Oberseite der alle anderen Ansichten . Ich brauche entlassen diese Ansicht, wenn der Benutzer tippt auf eine beliebige Stelle außerhalb des Helfer-Ansicht . Ich habe versucht mit mehreren UIWindows und hinzufügen Gesture recognizers an das UIWindow .
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer einfach ist eine transparente Schaltfläche, die Grenzen gleich ist der superview der Grenzen. Und der superview legen Sie die transparenten button für den Helfer anzeigen.
Den transparenten button hinzufügen eine click-Ereignis das schließen der Helfer anzeigen und die Schaltfläche "transparent", es selbst.
Beispiel :
und die
dismissHelper:
Methode kann dies tun :Können Sie die Ansicht berührt, indem Sie durch die Berührungen und auf der Suche auf die .view-Eigenschaft des touch. Es spiegelt die Ansicht, von wo der Blick eigentlich stammt.
Vorausgesetzt, dass Sie einen Verweis auf Ihre anzeigen (entweder über ein IBOutlet oder anderweitig) für Ihre view-genannt "myView", die unten arbeitet.
In Ihr .m-Datei. Die touchesBegan: Funktion wird jedes mal ausgelöst, wenn der Benutzer berührt mit einem finger nach unten. Wir Durchlaufen die Berührungen, um zu sehen, wenn die Ursprung-Blick auf die touch ist NICHT gleich "myView". Dieser Vergleich könnte auch durchgeführt werden, die über die Prüfung der Klasse, tag oder jede andere Eigenschaft, die Sie verwenden, zu identifizieren, Ihre Ansicht. Beispiele unten angegeben.
Oder im Falle der Verwendung eines Tags:
erstellen Sie eine hittestintercept anzeigen. dies kann die Ansicht unter behandeln von Ereignissen wie zuvor.
HtiTestInterceptView.m
importieren "HitTestInterceptView.h"
dann in die toast-Ansicht