核心绘图与图片对于自定义按钮哪个更好?

6

在制作自定义UIButton时,何时应该选择核心图形而不是图像?核心图形更快吗?除了分辨率独立性外,还有其他主要优点吗?


你能说明一下自定义按钮使用核心图形和使用图片的含义吗? - Daniel G. Wilson
2个回答

11

核心图形优点:

  • 绘制按钮的代码可能比图像文件小。
  • 允许动态修改,进行轻微的更改而不需要添加完整的第二个图像。
  • 正如您所提到的,与分辨率无关。
  • 内存占用较少(不会分配内存来保存每个像素)。

图像的优点:

  • 在编辑器中创建图像通常比编写绘制其完美的代码简单。(如果使用除实色以外的任何内容,它可能会简单得多。)
  • 编辑器将让您预先查看图像,无需重新编译。
  • 更容易与其他内置对象一起使用(例如,您可以将其作为UIButton的背景)。

至于运行时间,我不确定。我猜CG对于简单绘图会更快,因为大部分像素没有改变,但是对于大部分像素有改变的复杂绘图,图像会更快(假设您使用PNG格式,以便优化。否则,CG可能总是更快)。

作为妥协,您可以绘制一个图像,然后将该图像用于将来的绘图。这将允许您获得每种方法的一些优点。


5

对于ughoavgfhw的评论,以下是一些额外的想法:

  1. Images can be cached (like when you use [UIImage imageNamed:]). So you even won't use more memory for new buttons, except the first one displayed. (And no allocations, except memory for a new pointer).

  2. You can use stretchable images for button creation, and avoid some (not all and not always) problems with resolution dependence:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接