移动图层后,在CAShapeLayer.path上使用CGPathContainsPoint

时间:2012-08-27 13:53:43

标签: objective-c cgpath cashapelayer

使用CGPathContainsPoint时,我的结果与CAShapeLayer的原始位置一致,但与当前位置不一致。这是正常的,我是否需要在我正在测试的CGPoint上应用转换,或者我应该在我的代码中的其他地方寻找问题?我的CAShapeLayer只是通过一次更新其.position属性来移动。

为了完整起见,我补充说我的CAShapeLayer是UIButton.layer的子层。

1 个答案:

答案 0 :(得分:2)

要回答我自己的问题,我需要使用以下方法将触摸点的位置(在UIButton的坐标空间中)转换为CAShapLayer的坐标空间:

CGPoint convertedTouchPoint = [myButton.layer convertPoint:touchPoint toLayer:myShapeLayer];