Wie das "touchesBegan" - Methode arbeiten, die für eine bestimmte Ansicht?
In meinem Kontakt hinzufügen Seite, ich habe eine Ansicht und eine scrollview auf es und wieder einen Blick auf Sie. und im letzten Blick hab ich Textfelder, etc. ich habe die "touchesBegan" - Methode, aber es ist nur für die Ansicht am unteren Rand. wie um zu zeigen, dass die Methode zu einer anderen Ansicht, d.h. die Ansicht an der Spitze?
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.AddView endEditing:YES];
}
Hey Manoj Sie müssen akzeptieren, dass die Antworten unten. Es wird den Menschen helfen, die Suche nach ähnlichen Fragen.
InformationsquelleAutor Mano | 2013-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gewisser Weise ist dies, wie Sie tun können :
Bitte Beachten Sie :, Wie Sie mit Hilfe UIScrollView Sie möglicherweise nicht in der Lage, Berührungen Methode für UIScrollView. In diesem Fall müssen Sie möglicherweise den UIGesture.
UIScrollView
🙂Ja, das ist so und geht noch einen Schritt tiefer auf das problem 🙂
InformationsquelleAutor Rushi
Überprüfen Sie zuerst die Eigenschaft
UserInteractionEnabled
der das ganze steuert und aufYES
Nach dem check-out Ihre Ansicht von unten-frame, dass Ihr nicht mehr auf, dass die Ansichten
Und nach können Sie checkout mit Balg Zustand und etwas tun, mit bestimmten Kontrollen berühren Veranstaltung.
InformationsquelleAutor Paras Joshi
Hier ist die Antwort in Swift:
touches.first
Es ist, wo der Benutzer erste begonnen, den Bildschirm zu berühren. Es könnten mehrere dieser touch-Ereignisse, wie der Benutzer ziehen Ihren finger auf dem Bildschirm. Das Letzte wäre berührt.letzten.
InformationsquelleAutor Andre Yonadam
versuchen Sie dies :
InformationsquelleAutor SAMIR RATHOD
versuchen
InformationsquelleAutor geo
Bezogen auf die Apple-Dokumentation auf UIResponder, alle UIView-Objekte (einschließlich UIWindow), UIApplication-Objekt, UIViewController Objekte werden alle Instanzen von UIResponder. Behandeln eine bestimmte Art von Ereignis, eine responder muss das überschreiben der entsprechenden Methoden.
In unserem Fall
touches
ist unsere Art von Veranstaltung. Also unsere responder sollten die folgenden Methoden implementieren.touchesBegan (::), touchesMoved (::), touchesEnded (::), und touchesCancelled (::)
Da wir nur wissen wollen, wenn ein Benutzer berührt hat, eine bestimmte Ansicht, wir müssen nur umsetzen
touchesBegan(_:with:)
. Da wir überschreiben nicht die anderen Methoden, die wir aufrufen müssensuper.touchesBegan(touches, with: event)
. Wenn wir überschreiben ALLE der anderen Methoden, wir würden nicht erforderlich sein, um den Anrufsuper
.Blick auf
touchesBegan (_::)
die parametertouches
ist ein Satz von UITouch-Instanzen. Jede Instanz repräsentiert den Schliff für die beginnende phase der Ereignisse, die dargestellt wird durch die parameterevent
.Für Berührungen in einer Ansicht, dieses set enthält nur one touch standardmäßig. Daher
touches.first
ist nur die UITouch-Instanz in der Gruppe. Wir haben dann auf die Eigenschaft zugreifenview
dieser vertritt die Ansicht oder das Fenster, in dem die Berührung stattgefunden. Schließlich vergleichen wir die Ansicht, dass berührt wurde Ihre gewünschte Ansicht aus.Es sollte angemerkt werden, dass, wenn Sie erhalten möchten mehrere Berührungen - Sie müssen die Ansicht
isMultipleTouchEnabled
Eigenschafttrue
. Dann der Satz vontouches
wird mehr als ein UITouch-Instanz, und Sie haben zu handhaben, entsprechend.danke für die Anregung. Ich habe das durchgezogen und erhalten eine detaillierte Antwort.
InformationsquelleAutor codeedoc