我应该何时使用核心图形覆盖图像来制作自定义UIButton? 核心图形更快吗?除了解决方案独立性之外,还有其他任何重大好处吗?
答案 0 :(得分:11)
核心图形的优点:
图片的优点:
至于跑步时间,我不确定。我猜想CG对于简单绘图会更快,大多数像素都没有改变,但对于更复杂的绘图,大多数像素都会改变,图像会更快(假设你使用的是PNG格式,所以它会得到优化否则,CG可能会更快。)
作为折衷方案,您可以将图像绘制一次,并将该图像用于将来的绘图。这样您就可以从中获得一些好处。
答案 1 :(得分:5)
对ughoavgfhw's comment的其他想法:
可以缓存图像(就像使用[UIImage imageNamed:]
时一样)。因此,除了显示的第一个按钮之外,您甚至不会为新按钮使用更多内存。 (并且没有分配,除了新指针的内存)。
您可以使用可伸缩图像创建按钮,并避免一些(并非所有且不总是)分辨率依赖性问题:
UIImage *myImg = [UIImage imageNamed:@"myImg.png"];
UIImage *myImgStretchable = [myImg stretchableImageWithLeftCapWidth:10 topCapHeight:10];
[myButton setBackgroundImage:myImgStretchable forState:UIControlStateNormal];