2012-01-29 40 views
0

在我的應用程序中,我有一個可視化器的均衡器。可以在EAGLLayer上使用Quartz 2D繪圖嗎?

均衡器是一系列的點,它們是使用Quartz 2D在它們之間繪製的路徑的圖像瀏覽(在底部和左側用刻度標記來表示頻率和增益量)。背後是一個使用OpenGL和CAEAGLLayer完成的可視化工具。

這樣做的方式是我的視圖控制器的主視圖處理可視化器的子視圖,上面是繪製路徑的主視圖的另一個子視圖。上面兩個都是eq點的圖像視圖。

會發生什麼情況,路徑會一直點亮,直到歌曲開始播放並且可視化器開始繪製。它似乎是抹去了它上面的Quartz 2D。即使它在每次繪製時都會在上面的視圖中調用setNeedsDisplay不起作用。就像OpenGL有獨佔訪問權限來繪製。然而,UIImageView eq點保持可見。

有什麼辦法可以在gl層上使用Quartz 2D在視圖的頂部?我不希望使用OpenGL繪製路徑並使用OpenGL標記刻度,因爲我不得不繪製512x512或1024x1024紋理並縮放它,所以它看起來不太完美,而且我已經得到了工作Quartz代碼來繪製一切。

回答

1

有沒有什麼辦法在gl層上使用Quartz 2D的視圖頂部?

是的,這是明確支持的。 docs甚至詳細介紹瞭如何優化此配置的繪圖。

我懷疑你的意見實際上是錯誤的順序,GL視圖在上面。首先,確保GL視圖標記爲opaque(對於性能,但也因爲它會使它更加明顯,如果順序錯誤)。然後檢查您的視圖訂購(檢查主視圖的subviews)。

+0

哇我幾乎想把這個問題從尷尬中刪除......我忘記了IB列表頂部的項目位於視圖層次結構的底部。一週6天,我發現了兩年的iOS開發,但我仍然忘記了這樣的小事情。 :P出於某種原因,我只是看着它,並對自己說:「是的,那是最重要的」,並且從來沒有試過移動它。謝謝:) – 2012-01-29 21:42:47

+0

我似乎從來沒有錯過一個機會,證明我不配我的互聯網手柄! – 2012-01-29 21:44:14

相關問題