Folgende UIResponder
Methoden berichten, roh berührt auf dem Bildschirm:Beeinträchtigt das Implementieren von UIResponder-Berührungsmethoden innerhalb einer UIView-Unterklasse MVC?
- touchesBegan:withEvent:
- touchesMoved:withEvent:
- touchesEnded:withEvent:
Vor kurzem wurde ich mit einem UIView
Unterklasse zu spielen, die ich wollte Berührung reagieren.
Zunächst implementierte ich die oben genannten Methoden in der UIViewController
, die für die fragliche Ansicht verantwortlich war.
Allerdings erkannte ich, dass die Touch-Methoden aufgerufen wurden, wenn die UIViewControllers-Ansicht berührt wurde, nicht die Unteransicht, die ich wollte.
Ich implementiert die Methoden innerhalb einer UIView-Unterklasse und alles hat wie erwartet funktioniert.
Allerdings fühle ich mich wie MVC verletzt. Ich habe Kontrolllogik in meiner Sicht.
Sollte ich die in der UIViewController implementierten Methoden statt, und irgendwie Treffertest zu interpretieren, welche Ansicht berührt wurde, oder bin ich richtig die Methoden, die im Inneren des UIView Unterklasse implementiert?
Ich fühle mich wie der spätere ist der faule Ausweg.
Danke für Ihre Zeit.
Sie sollten es in der Ansicht überschreiben. Wie sonst wäre Ihre Ansicht wiederverwendbar? Sie müssen die Touch-Behandlung für "UIButton" nicht in jedem View-Controller implementieren, der einen hat, der auf die Touch-Ereignisse selbst reagiert. – dan
Verstößt dies nicht gegen MVC? – Woodstock
Sie könnten definitiv Dinge innerhalb der Methoden tun, die gegen MVC verstoßen, aber das Überschreiben von ihnen verletzt MVC nicht an und für sich. 'UIView' ist aus einem bestimmten Grund eine Unterklasse von' UIResponder'. – dan