1

我在想如何最好地完成在iphone應用程序中繪製場景。這裏的情況是:在iPhone上使用Quartz繪製幾個轉換後的圖像

  • 我有,我想提請
  • 我想有一個背景圖像的單一視圖
  • 我想在背景上畫幾個不同的圖像每個應用於它們的單獨變換(旋轉,縮放)
  • 我想在背景圖像上繪製幾塊文本 - 我需要對這些文字進行分詞並對它們進行轉換(旋轉,縮放)
  • 我想動畫這些圖像和文本塊是d在屏幕上的rawn(我不需要在第一次迭代中這樣做,但我不想選擇一條路徑,這將阻止我在未來這樣做。

我真的不知道從哪裏開始 - 但因爲事情沒有動畫太多它似乎並不像這必須是真正高性能所以我想石英將要走的路。

一些可能的解決方案,我能想到的:

  • 使用石英:繪製背景視圖的CGContext上。創建幾個CGLayers並將文本/圖像繪製到它們。轉換CGlayers(你可以這樣做嗎?),然後繪製圖層到主CGContext。

  • 使用OpenGL:請不要。除非我真的需要。

想法?

謝謝。

回答

1

大部分同意Marco。 CA非常適合這項工作。設置一個視圖並添加一堆圖層。

雖然有幾點。

您可以使用NSString UIStringDrawing類別方法直接繪製文本。工作得很好,沒有UILabel的開銷。

CoreGraphics繪圖是而不是太慢,因爲CoreAnimation智能緩存圖層。也就是說,它只繪製一次,然後CA爲動畫複製一個副本,除非該圖層發送了一條setNeedsDisplay消息。

+0

那麼在動畫之前,我應該只使用CGLayers嗎? 此外 - CoreGraphics和CoreAnimation之間有什麼區別?他們都是Quartz的一部分嗎?我在區分不同名稱時遇到了問題.... 任何人都有任何CoreAnimation/CALayers/CGLayers的良好資源? – aloo 2009-07-08 01:13:25

1

使用CoreAnimation CALayers爲圖像(您可以將轉換應用於它們)和UILabels作爲文本。使用CoreGraphics繪圖對於動畫製作來說太慢了。

相關問題