J'ai un UIView qui est transparent et couvre presque tout l'écran. J'ai laissé 50 pixels en haut. C'est un enfant de la vue du contrôleur de vue.Comment une vue sous-jacente peut-elle savoir si son rectangle a été touché, que ce soit directement ou indirectement?
Underneth le UIView MyView hérite de UIView, qui correspond à la taille de l'écran. Et à l'intérieur de cette classe MyView, je demande un peu là-dessus très simple avec ceci:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ([touch view] == self) {
NSLog(@"MyView touched");
}
}
Maintenant, la chose drôle est, bien sûr, que si l'utilisateur touche le UIView transparent qui couvre que MyView, je ne Ne pas "MyView touché" dans la console. Mais quand l'utilisateur touche la petite zone non couverte de MyView en haut de l'écran, le toucher arrive là.
C'est logique pour moi, parce que je demande [touch view] == self
. Mais que se passe-t-il si je voulais savoir que la zone rectangulaire de ce MyView a été touchée (peu importe qu'elle soit indirecte ou directe)?
Y at-il un moyen d'attraper n'importe quelle touche qui apparaît sur l'écran/la fenêtre et puis juste vérifier si elle correspond à la zone rectangulaire de la vue?
Parfait! Merci pour l'info :) – Thanks