2010-04-16 52 views
0

我试图找出该怎么含有非矩形路径的CALayer命中检测的最佳方式。我知道CGContextPathContainsPoint函数,但我不知道如何获取适当的CGContextRef时,我需要做点击检测(如鼠标下降)的参考。出于命中检测的目的,保留对CGContextRef传递给(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx委托方法的引用是否安全?我不知道如果相同CGContextRef可能被其它层进行修改。每个CALayer都有它自己的CGContextRef吗?

回答

3

让该图层拥有一个CGPath并命中该测试。然后,您不必担心保留上下文是否安全,而且您也不必每次都重新绘制路径。

1

使用CAShapeLayer代替CALayer,如果你正在处理绘制形状上层。 CAShapeLayer包含CGPath,因此您不需要在您的CALayer中保留CGPath。

相关问题