После двухдневного удара головой я смог создать этот странный код и похоже, что он работает!
Целью было запустить тест CAShapeLayer.CAShapeLayer движется по экрану, поэтому форма не в постоянном месте.Попробовать CGPath currentPoint непросто.
Не стесняйтесь добавлять любые входные данные ...
-(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
}
}