2010-04-16 73 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。

相關問題