2017-01-31 2 views
0

Gibt es eine Eigenschaft von UIView, die die zuletzt angeklickte Untersicht (oder möglicherweise "Gesten") zurückgibt?Swift: Kürzlich angeklickte Ansicht?

Ich möchte eine berechnete Eigenschaft currentPosition haben, die einfach eine position-Eigenschaft (eine Eigenschaft, die ich für meine Unterklasse von UIView definiert habe) aus der zuletzt angeklickte Ansicht erhält.

Im Moment habe ich eine optionale Instanz Eigenschaft let clickedView = UIView?, und in meinem Geste Handler sagen, dass ich
clickedView = gestureRecognizer.view
und dann habe ich die berechnete Instanz Eigenschaft deklariert als:
currentPosition: Position? { return clickedView?.position } aber es wäre toll, diese einfacher zu haben, und vor allem nicht clickedView = gestureRecognizer.view jedes Mal zuordnen müssen.

+0

„ich jetzt die neueste Ansicht ist haben eine optionale Instanzeigenschaft "Nun, so hätte ich es gemacht. – matt

+0

das wäre auch meine erste Idee. vielleicht irgendwie mit Protokoll, Delegaten oder einer Standard-Schließung können Sie es in Ihrem eigenen maßgeschneiderten Gestenerkenner ho zuweisen dies auf Ihre Instanz Eigenschaft – muescha

Antwort

0

Mögliche Sie können mit Tag Wert spielen. Jedes Mal, wenn das Berührungsereignis passiert Schleife alle Subview und setzen Sie den Tag auf Null und setzen Sie die neuen berührt Ansicht Tag bis zu einem gewissen Wert wie 100

Berührungsereignis

-> setzen alle auf Null Ansicht Tag

-> Aus der Sicht -Tags auf 100

Schleife alle subview

gesetzt

-> wenn Variablenwert 100, der

+0

und dann hoffe, dass Sie keine anderen Prozesse haben, die abhängig von der Tag-Wert! Warum nicht das tun, was Sie sagen, dass Sie nicht wollen, und nur die Eigenschaft clickedView aktualisieren? – Russell

Verwandte Themen