2010-08-18 4 views
0

J'ai besoin de mettre en place un écran d'information au dessus de l'interface principale, mais j'ai besoin qu'il soit alpha'd pour que vous puissiez voir l'interface en dessous. Cependant, lorsque je touche sur l'écran, l'interface en dessous est toujours en cours d'exécution.Quelle est la meilleure méthode pour créer une couche pour capturer les événements tactiles?

Quelle est la meilleure méthode pour intercepter les événements tactiles afin qu'ils ne passent pas? J'ai essayé d'ajouter un UIButton personnalisé à la taille de l'écran, mais cela n'a pas fonctionné non plus :(

Il y a trop de code à afficher ici malheureusement, la vue est longue de centaines de lignes, mais le bit important ajoute la sous-vue overlayed, qui est comme ceci:.

InfoScreen *infoScreen = [[UIView alloc] initWithFrame:self.view.frame]; 
UIButton *invisibleButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
invisibleButton.frame = self.view.frame; 

[self.view addSubview:invisibleButton]; 
[self.view addSubview:infoScreen]; 

J'utilise touchesBegan, touchesMoved, touchesEnded et touchesCancelled dans la vue ci-dessous est-ce peut-être pourquoi les touches deviennent par

Merci

!

: -Joe

Répondre

0

Si vous voulez arrêter tout de répondre (par exemple pour un bloc en fonction du temps), vous pouvez utiliser

[[UIApplication sharedApplication] beginIgnoringInteractionEvents]; 

et

[[UIApplication sharedApplication] endIgnoringInteractionEvents]; 

Il ne fonctionnera pas si vous besoin d'une touche pour annuler cet état ;-). Dans ce cas, un UIView transparent au-dessus de votre background fera le travail. Si ce n'est pas le cas, affichez du code.

+0

Malheureusement, je ne peux pas faire cela, car je dois pouvoir interagir avec la vue que j'ai ajoutée par-dessus. J'ai essayé de définir userInteractionEnabled à NO, mais comme la vue superposée est une sous-vue, l'interaction est également désactivée. Je vais poster du code ci-dessus. Merci. P.S. Je vais revoir les vieilles questions pour voir si je peux en marquer quelques-unes. Merci. – jowie

Questions connexes