2009-08-16 14 views
0

Ich arbeite an einer sehr einfachen Anwendung für iPhone jetzt. In einem Zustand zeigt die Anwendung eine Tabelle und eine darüber liegende Ebene. Die Ebene enthält ein Hintergrundbild und eine Schaltfläche.iPhone Touch-Ereignis von zwei UIviews

Wenn Sie auf die Schaltfläche klicken - passiert nichts. Stattdessen wird die ausgewählte Tabelle ausgelöst.

Was mache ich falsch?

David.

Antwort

0

Haben Sie die Tabellenansicht aus der Superview entfernt?

[viewWithTableInIt removeFromSuperview]; 
[theview addSubivew:viewWithBackgroundImageAndButton]; 

oder wenn Sie die „Schicht“ halten müssen (ich nehme an, Sie eine Ansicht bedeuten) mit dem Tisch in ihm als ein Subview, könnten Sie

viewWithTableInIt.hidden = YES; 
1

Schichten sind für das Zeichnen tun, nicht Ereignisse verarbeiten Um auf Berührungsereignisse reagieren zu können, müssen Sie im Allgemeinen eine Unterklasse von UIResponder sein (was CALayer nicht ist). Also, wie hast du diese Ebene über die UITableView gelegt? Wenn es wirklich ein CALayer ist, dann wird das nicht funktionieren; Sie müssen eine UIView verwenden. Wenn es sich wirklich um eine UIView handelt, die Sie gerade eine Ebene aufgerufen haben, geben Sie einige Informationen darüber an, wie Sie die Ansicht erstellt haben. Die wahrscheinlichste Ursache für eine Ansicht antworten nicht für hitTest:withEvent: im UIView docs wie zum Scheitern verurteilt:

Diese Methode ignoriert Ansichten, die versteckt sind, die behinderte Benutzer-Interaktion hat oder haben einen Alpha-Wert von weniger als 0,1.

Verwandte Themen