2012-06-20 9 views
8

ich eine benutzerdefinierte UIView, die hitTest implementiert: withevent:hitTest: withevent: UIEvent allTouches ist leer

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    .... some code .... 

    int x = 0; 
    x= [[event allTouches] count]; 
    return [super hitTest:point withEvent:event]; 
} 

Das Problem ist, dass x ist immer 0. Muss ich andere APIs implementieren oder die UIView konfigurieren zu starten die Berührungen bekommen?

Ich brauchte es nur, um zwischen Touch Start/Move und Ende zu unterscheiden.

Dank Jamil

+0

Was wird angezeigt durch 'NSLog (@" Ereignis:% @ ", Ereignis);'? –

+0

Veranstaltung: Zeitstempel: 0 berührt: {( )} Veranstaltung: Zeitstempel: 0 berührt: {( )} Veranstaltung: Zeitstempel: 248.999 berührt: { ( )} – Jamil

+0

@PhillipMills hitTest wird dreimal mit den Protokollen über – Jamil

Antwort

-3

dieses

yourView.userInteractionEnabled = YES; 

iOs Versuchen Sie bietet die Möglichkeit, die Benutzer-Interaktionen in der Ansicht Hierarchien zunichte zu machen. Es wird gesagt, dass in der Kette von Ereignissen auf iOS es möglich ist, das Berührungsereignis in der unmittelbarsten Ansicht in den Ansichtstapeln zu ignorieren, und dann versucht die nächste Ansicht in der Hierarchie, die Verantwortung zu übernehmen, auf die Interaktion zu reagieren.

Da gesagt wird, dass die vorherige Ansicht, die auf die Benutzerinteraktion reagieren sollte, auf NO gesetzt wird, wird die nächste Ansicht in der Hierarchie auf das Ereignis reagieren. Dies könnte der Grund sein, warum es nicht für Sie funktioniert hat.

+0

Warum? Warum sollte er das versuchen? Bearbeiten Sie Ihre Antwort, um informativer zu sein. – CodaFi

+0

Getan hoffe, es ist klarer, sorry darüber – artud2000

Verwandte Themen