Überschreiben die Methode hitTest auf UIView
Habe ich eine app, die ist zu haben, ein ziemlich umfangreiches Formular, in es. Fünfzig oder so Einträge. Meine Hierarchie sieht wie folgt aus. Weil der darüber liegende Aussicht auf den Feldern in der Formular-Ansicht nicht bekommen, einen cursor in Ihnen, wenn geklickt:
viewController.view (UIView)
svParent (UIScrollView)
Abschnitt(UIView)
titlebar(UIView)/contentWrapper(UIScrollView) (Geschwister die folgenden Kinder contentWrapper)
form(UIView)
textfield(UITextField)
textfield(UITextField)
textfield(UITextField)
...und so weiter...
Verstehe ich das Konzept von über Reiten hitTest auf einen superview, so dass ein Objekt auf eine Untersicht zugegriffen werden kann, aber ich bin mir nicht ganz sicher, wie das Programm es.
In meiner viewController ich fügte dies hinzu:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
NSLog(@"ok");
return NO;
}
aber egal, wo ich Sie im simulator-Fenster wird nichts protokolliert. Gibt es etwas, was ich sonst noch tun müssen? Und dann kann jemand klären, was passiert, nachdem - ist das eine automatische Sache, wo, wenn ordnungsgemäß funktioniert, die niedrigsten Untersicht erhalten first responder-status und werden aktiv (D. H. im Falle eines textfield editierbar).
Du musst angemeldet sein, um einen Kommentar abzugeben.
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event ;
AFAIK ist es umgesetzt in UIView-Unterklasse, und nicht in view-controller.
Besseres Verständnis für Hierarchie, finden Sie diese Antwort
Zunächst
hitTest:
ist eine Methode derUIView
, nichtUIViewController
, so müssen Sie eine benutzerdefinierteUIView
Unterklasse irgendwo (wahrscheinlich an der Spitze), die in Ihrer view-Hierarchie.Zweite, die Methode zurückgeben sollte, ein Blick, nicht ein
BOOL
, so der RückkehrNO
macht nicht viel Sinn.