使用CGPathContainsPoint时,我的结果与CAShapeLayer的原始位置一致,但与当前位置不一致。这是正常的,我是否需要在我正在测试的CGPoint上应用转换,或者我应该在我的代码中的其他地方寻找问题?我的CAShapeLayer只是通过一次更新其.position属性来移动。
为了完整起见,我补充说我的CAShapeLayer是UIButton.layer的子层。
答案 0 :(得分:2)
要回答我自己的问题,我需要使用以下方法将触摸点的位置(在UIButton的坐标空间中)转换为CAShapLayer的坐标空间:
CGPoint convertedTouchPoint = [myButton.layer convertPoint:touchPoint toLayer:myShapeLayer];