2011-06-06 96 views
6

什麼時候應該使用核心圖形來製作自定義UIButton的圖像? 核心顯卡速度更快嗎?除了獨立決議以外,還有其他的主要好處嗎?核芯顯卡的核心圖形與自定義按鈕的圖像

+0

你能澄清你的意思是通過與自定義按鈕核心圖形和使圖像? – 2011-06-06 02:57:20

回答

11

優點:

  • 代碼繪製一個按鈕可能比映像文件小。
  • 允許動態修改,輕​​微更改,無需添加完整的第二張圖片。
  • 正如你所提到的,決議無關。
  • 內存消耗較少(不分配內存來保存每個像素)。

優點圖片:

  • 在編輯器中創建的圖像通常會比寫代碼繪製它非常簡單。 (如果你使用純色以外的東西,它可能會更簡單)。
  • 編輯器會讓你事先看到圖像而不用重新編譯。
  • 更容易與其他內置對象一起工作(即,您可以將其設置爲UIButton的背景)。

至於跑步時間,我不確定。我猜想CG對於簡單繪圖來說會更快,大多數像素都沒有改變,但對於大多數像素被改變的更復雜繪圖,圖像會更快(假設你使用PNG格式,所以它得到了視覺化否則,CG可能會更快)。

作爲折衷方案,您可以一次繪製圖像,然後將該圖像用於未來的繪製。這可以讓你從每個方面獲得一些好處。

5

其他想法ughoavgfhw's comment

  1. 的圖像可以被緩存(比如當您使用[UIImage imageNamed:])。所以你甚至不會爲新按鈕使用更多的內存,除了第一個顯示的內容。 (並沒有分配,除了新指針的內存)。

  2. 您可以使用拉伸圖片按鈕創建,並避免一些(不是全部,而不是總是)問題解決的依賴:

    UIImage *myImg = [UIImage imageNamed:@"myImg.png"]; 
    UIImage *myImgStretchable = [myImg stretchableImageWithLeftCapWidth:10 topCapHeight:10]; 
    [myButton setBackgroundImage:myImgStretchable forState:UIControlStateNormal];