J'ai un contrôleur de vue où il y a plusieurs objets uiview. J'ai besoin de savoir sur quel uiview utilisateur a tapé. comment est-ce possible? toute orientation vous aidera beaucoup ....trouver quelle vue a été cliquée
Merci
Pankaj
J'ai un contrôleur de vue où il y a plusieurs objets uiview. J'ai besoin de savoir sur quel uiview utilisateur a tapé. comment est-ce possible? toute orientation vous aidera beaucoup ....trouver quelle vue a été cliquée
Merci
Pankaj
Voici ce que vous pouvez faire pour obtenir ce que vous voulez ..... Dans cet exemple, j'ai créé 7 vues
UITapGestureRecognizer* gestureRecognizer;
UIView* myView;
for (int i = 0; i < 8; i++)
{
gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomthing:)];
gestureRecognizer.numberOfTapsRequired = 1;//or what ever you want
myView = [[UIView alloc] initWithFrame:CGRectMake(10, i*30, 30, 28)];
myView.backgroundColor = [UIColor redColor];
myView.tag = 100+i;
[self.view addSubview:myView];
[myView addGestureRecognizer:gestureRecognizer];
[myView release];
[gestureRecognizer release];
}
Maintenant, vous devez implémenter la méthode comme celui-ci
-(void)doSomthing:(id)sender
{
UIView* temp = [(UITapGestureRecognizer*)sender view];
// here you get the view you wanted
NSLog(@"view number :%d",temp.tag);
}
Je pense que cela devrait vous aider
vous pouvez ajouter des gestes aux objets UIView pour trouver quel objet a été touché. voir la documentation.
pour le code spécifique juste commentaire.
il peut me donner l'emplacement de toucher mais comment vais-je obtenir id de la vue qui a été touché. Il peut y avoir plusieurs vues et je dois effectuer un événement sur la base de la vue sélectionnée par l'utilisateur. – pankaj
Vous pouvez probablement ajouter un bouton personnalisé avec une étiquette au-dessus de chaque vue. Ensuite, vous pouvez savoir quelle vue est sélectionnée en fonction de l'étiquette du bouton.
veuillez jeter un coup d'oeil à ceci. Cela peut aider.
http://www.iphonedevsdk.com/forum/iphone-sdk-development/13041-touch-event-subview.html
Définir une balise pour chaque point de vue de garder une trace d'eux.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// We only support single touches, so anyObject retrieves just that touch from touches
UITouch *touch = [touches anyObject];
NSLog(@"view %i", [touch view].tag);
}
merci amit vous m'avez vraiment appris quelque chose de nouveau ... – pankaj