Iphone 如何创建能够跨多个分辨率进行良好缩放的iOS图像按钮?

Iphone 如何创建能够跨多个分辨率进行良好缩放的iOS图像按钮?,iphone,graphics,ios4,Iphone,Graphics,Ios4,我遇到了使用带有自定义颜色的uibarbuttoneim的问题。网络上的一切似乎都表明,解决缺乏官方API支持的唯一办法是使用图像。在为iOS 4之前的设备开发时,除了使用新的iPhone4之外,这一切都很好。为iPad和iOS 4之前的设备创建图像非常简单,但为这些设备开发的图像在iPhone4上看起来绝对可怕。我怀疑,随着下一代设备的引入,这一问题将进一步恶化 考虑下面的例子。注意默认的彩色按钮是多么的漂亮和平滑,但是iPhone3GS的图像看起来很糟糕。对于不同分辨率的设备,必须包含多个图

我遇到了使用带有自定义颜色的
uibarbuttoneim
的问题。网络上的一切似乎都表明,解决缺乏官方API支持的唯一办法是使用图像。在为iOS 4之前的设备开发时,除了使用新的iPhone4之外,这一切都很好。为iPad和iOS 4之前的设备创建图像非常简单,但为这些设备开发的图像在iPhone4上看起来绝对可怕。我怀疑,随着下一代设备的引入,这一问题将进一步恶化

考虑下面的例子。注意默认的彩色按钮是多么的漂亮和平滑,但是iPhone3GS的图像看起来很糟糕。对于不同分辨率的设备,必须包含多个图像,这似乎不是很具有可扩展性(双关语)

在没有用于更改
uibarbuttoneim
颜色的官方API的情况下,有哪些策略可以创建可根据不同分辨率设备进行缩放的图像?这个问题并不是UIBarButtonItems独有的,社区如何适应位图的其他UI元素?对于这种特殊情况,是否有比使用图像(例如使用石英绘制图像)更好的解决方案


如果可能,请提供具体的代码示例。

如果您查看源代码,您可以看到它们如何绘制自定义按钮和形状,无论分辨率如何,都可以很好地缩放。

您可以将任何图像列为Image@2x.png与Image.png一起,系统将在运行时选择适当的图像。

给出不透明度(对于Mac)一次尝试。用矢量元素和效果画出你的按钮,它会吐出必要的石英代码来复制它,在你的iOS应用程序中本机绘制。你得到视网膜(@2x)自动支持。

自从我发布这个问题已经一年多了,但是遇到了一个我希望能够做到这一点的用例,所以我决定编写一个开源应用程序来创建按钮。这个应用程序使用私有API来更改
UIBarButtonim的颜色对象,然后使用图形上下文将其保存到计算机文件系统上的确定位置。这样,您就可以在
UIToolbar
中使用像素完美的图像

该应用程序创建标准和@2x分辨率的图像


@ Guthub

< p>任何矢量绘图应用程序都可以工作,但我也会考虑POVRAY,它允许您以C类脚本3D语言创建,然后导出您选择的任何像素大小。

我有与导航栏相同的问题,请按以下方法解决: 首先,我将导航栏子类化 在这个班里 -(void)drawRect:(CGRect)rect { UIImage*image=[UIImage ImageName:@“MyImage.png”]

}

最后用@2x结尾保存不同分辨率的相同图像

无法编辑您的帖子(诅咒您,2000代表!),但我相信这将是一个有用的链接,可以包含在您的帖子中:
self.frame=CGRectMake(0, 0, image.size.width, image.size.height);

self.backgroundImage  =image;