2011-09-13 2 views

Répondre

2

Vous pouvez avoir un calque invisible sur tous les calques pour vérifier les touches chaque fois que votre sous-vue apparaît, et vous pouvez vérifier manuellement si la coordonnée est dans la sous-vue puis la retirer manuellement de votre vue principale.

Vous pouvez voir un exemple ici pour rejeter le clavier au lieu d'enlever une vue:

http://www.ke-cai.net/2011/05/tap-background-to-dismiss-keyboard-for.html

3

Lorsque vous définissez votre point de vue contextuel, vous devez définir c'est rect visible (cadre). Dans votre contrôleur de vue principale, lorsque l'utilisateur appuie sur l'écran, récupérez l'emplacement tactile et vérifiez que le point n'est pas contenu dans votre cadre contextuel.

Ceci est juste un exemple pour illustrer ceci:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *aTouch = [touches anyObject]; 
    if (aTouch.tapCount == 1) 
    { 
     CGPoint p = [aTouch locationInView:self.view]; 
     if (!CGRectContainsPoint(yourpopupview.frame, p)) 
     { 
      // dismiss the popup 
     } 
    } 
} 

J'espère que cela vous aidera.

+0

Merci ,,,, cela a fonctionné pour moi ,,,, :) – Dhiru

Questions connexes