Erkennung der Berührung von OBEN / UNTEN

8

Ich bin ein Anfänger in der IOS-Entwicklung, ich habe eine einfache Demo zur Erkennung von Mehrfachberührungen entwickelt, indem ich dieses Tutorial :

Es funktioniert gut, aber meine Frage ist: wenn ich versuche, die Berührung von der Außenseite des iPhone (von oben oder unten) zu starten, wird die Berührung nicht erkannt, und wenn ich versuchte, das gleiche von links zu tun Rechte Seiten, es funktioniert. Kann mir jemand erklären, warum die Berührung nicht erkannt wird, wenn ich versuche, von oben oder unten zu ziehen?

    
Houcine 26.08.2011, 14:29
quelle

5 Antworten

8

Es beginnt nicht von oben, da die Statusleiste die Berührung aufnimmt. Sie wissen, wie beim Tippen auf die Statusleiste der Bildlauf nach oben geht? Deshalb "stiehlt" Statusleiste Ihre Berührung. Wenn Sie die Statusleiste entfernen (Sie können dies in Info.plist der App tun), erhalten Sie Berührungen von oben, sogar mit iOS 5 und dem Benachrichtigungscenter "Von oben ziehen". (Beim ersten Pulldown wird ein kleiner Pulldown-Griff angezeigt. Wenn Sie erneut ziehen, stößt das Benachrichtigungscenter Ihre Berührungen an.)

Es sollte jedoch von unten beginnen, es sei denn, es gibt eine Art Tab-Leiste oder eine andere Symbolleiste, die auch Berührungen aufnimmt.

    
Filip Radelic 02.09.2011, 08:33
quelle
5

In der Statusleiste wird das Touch-Ereignis anstelle Ihrer Ansicht angezeigt. Sie können die Statusleiste ausblenden durch:

%Vor%

Oder setzen Sie einfach die Eigenschaft Statusleiste ist zunächst verborgen in der Datei info.plist.

Wenn Sie Ihr iOS 5 ausführen, wird das Verhalten anders aussehen, wenn die Statusleiste ausgeblendet wird: Sie können das Ereignis aus Ihrer Ansicht abrufen, aber das System wird auch einen kleinen schwebenden Drag-down-Balken anzeigen.

Wenn Sie die Statusleiste nicht ausblenden möchten, können Sie versuchen, die Windows-Ebene festzulegen und die Ansicht oberhalb der Statusleiste zu platzieren (nicht sicher, ob dies im AppStore zulässig ist oder nicht).

    
PeakJi 05.09.2011 03:56
quelle
2

Ich denke, es ist wegen der zukünftigen Version von iOS 5 deaktiviert, die es Ihnen ermöglicht, Benachrichtigungscenter anzuzeigen, indem Sie von oben nach unten auf Ihr iPhone tippen.

Da ich unter iOS 5 laufe, kann ich dir keine weiteren Details geben, weil ich nicht testen kann, aber ich denke, es ist die wahrscheinlichste Antwort

    
Victor Carmouze 26.08.2011 14:54
quelle
1

Verwendung dieses Codes in loadView eines UIViewController :

%Vor%

Alle Berührungen werden aufgenommen, wenn Sie in beliebiger Richtung und Ausrichtung vom Bildschirm in den Bildschirm gleiten. Beachten Sie, dass die Größe der Ansicht immer den gesamten Bildschirm einnimmt.

Ich glaube, die anderen haben recht, wenn sie sagen, dass die Statusleiste die Berührungsereignisse erhalten wird, wenn sie sichtbar ist. Wenn die Ansicht nicht den gesamten Bildschirm überspannt, werden möglicherweise keine Ereignisse angezeigt. Wenn zum Beispiel die y-Koordinate des Rahmens 20 ist, wird die Berührung nicht aufgenommen, wenn Sie Ihren Finger von oben nach unten schieben.

    
nloko 17.09.2011 21:09
quelle
0

Die vorherigen Antworten rund um die Statusleiste sind völlig richtig, denke ich.

Denken Sie auch daran, dass unter dem Gestenerkenner-Kram leistungsfähigere, aber komplizierter zu programmierende Touch-APIs sind.

Das Basiselement ist ein UIEvent mit den Methoden touchBegan, touchEnded, touchCancelled und touchMoved. Sehen Sie sich die Dokumentation dazu an, da ich hier etwas aus dem Gedächtnis gehe ... Wie auch immer, Sie können sehen, dass wenn Sie mit touchBegan öffnen müssen, die Geste außerhalb des berührungsempfindlichen Bereichs möglicherweise nicht startet. Von links nach rechts funktioniert das wahrscheinlich, weil der Bereich zwischen Bildschirm und Rand so schmal ist, dass die Berührung auch dann aufgenommen wird, wenn Sie nicht direkt auf dem Bildschirm sind. Von oben nach unten und von unten nach oben haben Sie jedoch breitere Bereiche, in denen Sie wahrscheinlich außerhalb eines Antwortbereichs beginnen.

    
Cocoadelica 04.09.2011 21:14
quelle

Tags und Links