2009-08-16 8 views
0

Je travaille sur une application très simple pour iPhone maintenant. Sur certains états, l'application affiche une table et un calque dessus. la couche contient une image d'arrière-plan et un bouton.iPhone touch événement de deux UIviews

Lorsque vous cliquez sur le bouton - rien ne se passe. à la place - la ligne de la table sélectionnée est déclenchée.

Qu'est-ce que je fais mal?

David. Avez-vous supprimé la vue de la table de la vue d'ensemble?

Répondre

0

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

ou si vous avez besoin de garder la « couche » (je suppose que vous voulez dire une vue) avec la table comme une sous-vue, vous pourriez faire

viewWithTableInIt.hidden = YES; 
1

couches sont pour le dessin, pas gérer des événements. Pour répondre aux événements tactiles, vous devez généralement être une sous-classe de UIResponder (ce qui n'est pas le CALayer). Alors, comment avez-vous mis cette couche sur l'UITableView? Si c'est vraiment un calayer, alors ça ne marchera pas; vous devez utiliser un UIView. Si c'est vraiment un UIView que vous venez d'appeler une couche, alors fournissez quelques informations sur la façon dont vous avez créé la vue. La cause la plus probable afin de ne pas répondre est de hitTest:withEvent: à l'échec comme décrit dans le UIView docs:

Cette méthode ne tient pas compte des vues qui sont cachées, qui ont une interaction utilisateur désactivé, ou qui ont un niveau d'alpha inférieur à 0,1.

Questions connexes