J'ai un UIScrollView qui contient un nombre quelconque de miniatures qui devraient détecter l'événement tactile, effectuer une transformation 3D sur eux-mêmes et appeler une méthode déléguée.Détection de touches pour les couches dans un UIScrollView
Le problème que je suis incapable de surmonter est de détecter quelle sous-couche est tapée. Je mets layer.name à un nombre d'index et la sous-classe de UIScrollView obtient l'événement tactile. Maintenant le dernier obstacle restant est comment faire un hitTest sur les sous-couches pour obtenir la propriété de nom et voila!
Je pensais à sous-classer un UIView comme conteneur du CALayer et capturer l'événement tactile de cette façon. Mais j'espère qu'il pourrait y avoir un moyen plus économique de déterminer si la sous-couche est touchée.
Le code que j'ai essayé (dans mon sous-classe UIScrollView):
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] == 1) {
for (UITouch *touch in touches) {
CGPoint point = [touch locationInView:[touch view]];
CALayer *alayer = [self.layer hitTest:point];
if (alayer) NSLog(@"layer %@ touched",alayer.name);
else NSLog(@"layer not detected");
}
}
}
Je reçois deux erreurs de compilation. d'abord un avertissement: aucune méthode hitTest trouvée. et une erreur «demande de nom de membre» est quelque chose qui n'est pas une structure ou une union ».
Ole, je visais la même solution, je pense. Cependant, je reçois deux erreurs de compilation avec mon code que j'ai posté ci-dessus. – cameron
Vous n'avez probablement pas importé '. –
Vous avez raison, monsieur! :X – cameron