我有一個CAShapeLayer,並試圖通過將它傳遞給CGContextDrawLayerAtPoint來繪製它,但得到一個有關將一個CAShapeLayer * __ strong的可保留參數傳遞給期望CGLayerRef的函數的錯誤。CAShapeLayer可以傳遞給CGContextDrawLayerAtPoint嗎?
我已經做了一些瀏覽,但無法弄清楚如何轉換它/將CAShapeLayer橋接到CGLayerRef。
如果它不可能轉換,那麼CAShapeLayer可以使用CGLayerCreateWithContext創建嗎?
我在做的是用UIBezierPath創建一個圖形,然後創建一個CAShapeLayer並將其路徑設置爲UIBezierPath,然後我想顯示它。我可能使用addSublayer來顯示形狀圖層但是我要在多個不同的點顯示相同的形狀,而不是添加多個我打算使用CGContextDrawLayerAtPoint在不同的點上顯示它的子圖層。
請參閱我的「羅盤」示例,其中複雜繪圖由許多子圖層組成。別擔心。要開心。 http://www.apeth.com/iOSBook/ch16.html – matt
謝謝,是的,我被術語層的雙重含義弄糊塗了(我沒有注意到CA和CG部分)。因此,有幾十個子層在很大程度上不是無效的? – Gruntcakes
不要繪製它們。現在,你開始動畫/滾動所有這些,這可能是一個問題。但是讓它們只顯示在屏幕上 - 沒問題,這就是屏幕_is_,它是一個層的渲染樹。你在iOS屏幕上看到的一切都是一層。 – matt