Если вам нужен точный тест попадания для пути, я боюсь, что вам придется самостоятельно проверять / перебирать иерархию слоев, если точка находится внутри вашего пути, используя CGPathContainsPoint
, как вы предлагали.
При выполнении итерацииможно оптимизировать его, пропустив слои, где точка находится за пределами их рамки.
Для менее мелкозернистого контроля вы можете получить затронутый слой, используя метод CALayer
s
- (CALayer *)hitTest:(CGPoint)thePoint
.
Если у вас есть иерархия слоев с уровнем вложенности <1000 (что почти всегда верно), я бы не сильно волновался. </p>