2011-06-06 60 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];