Après m'être tapé la tête pendant deux jours, j'ai réussi à produire ce code bizarre et il semble qu'il fonctionne !
Le but était de tester avec succès le CAShapeLayer. Le CAShapeLayer se déplace sur l'écran, donc la forme n'est pas à un endroit constant. Tester le CGPath currentPoint n'est pas simple.
N'hésitez pas à ajouter votre contribution...
\-(void)touchesBegan:(NSSet \*)touches withEvent:(UIEvent \*)event
{
CGPoint p = \[\[touches anyObject\] locationInView:self\];
CGAffineTransform transf = CGAffineTransformMakeTranslation(-shapeLayer.position.x, -shapeLayer.position.y);
if(CGPathContainsPoint(shapeLayer.path, &transf, p, NO)){
// the touch is inside the shape
}
}