在制作自定义UIButton时,何时应该选择核心图形而不是图像?核心图形更快吗?除了分辨率独立性外,还有其他主要优点吗?
核心图形优点:
图像的优点:
至于运行时间,我不确定。我猜CG对于简单绘图会更快,因为大部分像素没有改变,但是对于大部分像素有改变的复杂绘图,图像会更快(假设您使用PNG格式,以便优化。否则,CG可能总是更快)。
作为妥协,您可以绘制一个图像,然后将该图像用于将来的绘图。这将允许您获得每种方法的一些优点。
对于ughoavgfhw的评论,以下是一些额外的想法:
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).
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];