2015-12-03 10 views

Répondre

4

U peut utiliser touchesBegan pour le suivre comme ceci:

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch= [touches anyObject]; 
    if ([touch view] == self.view) 
    { 
     // do stuff 
    } 
} 

Pour rapide:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     if let touch = touches.first { 
      if touch.view == self.view { 
       // do stuff 
      } 
     } 
     super.touchesBegan(touches, withEvent:event) 
    } 
1

Vous pouvez ajouter un UIView sous la vue personnalisée couvrant tout l'écran, lui donner un alpha de 0,1 ou plus. Vous pouvez ensuite ajouter un tapGestureRecognizer pour prendre toutes les touches en dehors de la vue personnalisée. N'oubliez pas de masquer la superposition lorsque vous masquez la vue personnalisée, afin que les touches ne soient pas bloquées par la suite.