2010-11-07 49 views
0

我有一個CALayer與我已經添加到我的視圖的基礎層的自定義繪製方法。我將needsDisplayOnBoundsChange設置爲NO。但是,當我調整父視圖的框架時,圖層的drawInContext:會不斷調用。我希望內容在調整大小時進行縮放。任何線索?如何防止CALayer重新繪製其綁定更改?

回答

1

有趣的是,我有一個CALayer正確縮放其內容的情況,直到我調用setNeedsDisplay來重繪它的內容爲止。有一件事情可能會有所不同,就我而言,圖層是由其委託而不是由CALayer的子類繪製的。另一件可能不同的事情是,這是在iOS上,而不是OSX(我不知道你在這種情況下使用了哪種)。子類和委託繪製圖層和/或iOS和OSX之間可能存在行爲差異。

另一件需要注意的是,needsDisplayOnBoundsChange被默認記錄爲NO,所以不需要設置它。我沒有特別設置needsDisplayOnBoundsChange在我的圖層上。

您可以嘗試使用委託進行繪圖以查看是否有所作爲。請注意,UIView不能成爲CALayer的委託。在我的情況下,我做了一個簡單的委託對象,將繪製調用轉發給我的視圖。

相關問題