0
有三個圖層添加到UIView。一層繪製一個矩形。一個畫一個圓圈。一個繪製一個多邊形。圖層的不透明度爲no。當我觸摸多邊形時,我想獲得繪製多邊形的正確圖層。這三層完全填滿了視野。我已經實現了這一點。但我不知道我們是否有更好的解決方案來解決它。我的方式是這樣的: 1.使用-drawLayer:inContext繪製內容。存儲您使用的CGPath。 2.在UIView的-touchedEnded:withEvent方法中。使用CGPathContainsPoint()檢測CGPath是否包含觸摸點。如何檢測CALayer的繪製內容是否包含觸點?
也許這是解決這個問題的蠢方法。誰能告訴我如何更好地解決問題?
另一個問題是關於CGPath,當我使用CGPathContainsPoint()來檢測點。我需要緩存CGPath。所以我沒有立即釋放它。如果在-drawLayer中使用CGPathRelease():inContext:,我無法獲取-touchédEnded:withEvent:中的CGPath。我不知道應該在哪一層釋放CGPath。 – pyanfield 2012-02-08 13:57:19
您不需要緩存路徑,使用'CAShapeLayer'繪製形狀。它有一個「路徑」屬性,你可以隨時訪問。 – 2012-02-08 14:12:30
是的,你是對的。謝謝。 – pyanfield 2012-02-09 09:32:54