2009-03-20 8 views
1

Ich bin neu in der iPhone-Entwicklung, und ich wollte es wissen. genau das, was die UITouch Instanzmethode Ansicht machtWas genau kehrt [Touch-Ansicht] zurück?

[touch view]; 

Ich las über die Dokumentation und verstehen, dass es die Auffassung gibt, dass die Berührung ‚in‘ war, aber was, wenn es eine Ansicht Hierarchie existiert. Ich hatte ursprünglich angenommen, dass es die Subview, die am weitesten vorne ist, zurückgeben würde. Gilt diese Annahme immer?

Was ist die empfohlene Methode, um zu bestimmen, ob die Berührung auf einer bestimmten Ansicht war oder nicht.

Antwort

1

Ja, es würde die Ansicht zurückgeben, die tatsächlich berührt wurde (die oberste Ansicht), unabhängig davon, wo die Berührung behandelt wird.

Die einzige Ausnahme, die ich mir vorstellen kann, wäre, wenn die oberste Ansicht unsichtbar wäre.

+0

Gibt es eine einfache Möglichkeit, die Ansichtshierarchie zur Laufzeit herauszufinden. Debugger? Anweisungen drucken? – WillF

+0

Verwenden Sie die Eigenschaften 'superview' und 'subviews'. –

+0

Ich habe mein Problem herausgefunden. Ich habe einer UIImageView eine Unteransicht hinzugefügt, und ich glaube standardmäßig, dass userInteractionEnabled = NO; also setze ich es einfach auf JA. Dies würde erklären, warum ich nicht das erwartete Ergebnis erhalten habe, als ich [touch view] anrief. Danke Leute – WillF

0

Eigentlich glaube ich, es gibt Ihnen, wo die Berührung "begann", obwohl die Berührung jetzt in einer anderen Ansicht sein kann. Etwas, das Sie im Auge behalten sollten, wenn Sie touchMove und touchEnd-Ereignisse sehen.

Verwandte Themen