2010-08-10 131 views
4

我一直在使用CorePlot框架出現的一個奇怪問題,但我懷疑它不是框架本身的錯誤。我希望這裏的某個人能看到類似的東西,並且可以指引我朝着富有成效的方向發展。CALayers第一次繪製時不顯示

我有一個標籤視圖,其中顯示圖形。這是最初活躍的選項卡都沒有問題,但往往當我打開下一個標籤,我看到以下內容:

http://imgur.com/J0VDs.png

注意,在上面的圖,幾個標籤丟失。如果我切換回原始選項卡,然後再轉到第二個選項卡,每次都很好。我已經放置了各種診斷日誌記錄並已確定:

  1. 視圖在圖形創建之前清醒;和
  2. 正在調用每個標籤的drawInContext:方法,包括那些丟失的方法。事實上,軸標籤是最後呈現的東西之一,所以我希望它們能夠顯示是否有任何內容,並且某些缺失的標籤正在呈現之後(和之前)呈現。

由於渲染看起來像是應該進行的,並且因爲這件事情第二次得到良好的效果,所以我懷疑問題在於我如何將它與視圖掛鉤,或者在我的時間裏,而不是在Core Plot本身(或者,例如在剪輯中)。儘管如此,我對於如何調試這個問題還沒有想法,並且很樂意聽到任何有類似問題經驗的人。

謝謝!

回答

0

六年後,我處理了同樣的問題。在創建圖層時,第一次圍繞圖層時可能還沒有在動畫中需要時在屏幕上繪製。第二次是它。

簡單的修復方法是在將圖層添加到其超級圖層後立即調用層上的.layoutIfNeeded()

0

在實際繪製CALayer之前,CALayer可能沒有及時緩存內容。

沒有看到代碼,我建議嘗試撥打CALayer,呼叫-setNeedsDisplay缺少標籤信息,只要您更改該CALayer的內容。

相關問題