2012-04-16 63 views
0

我有一个梯度的形象,在蓝色。它是100px(高度)×1px(宽度)。现在我试图将其用作突出显示状态的背景图像。但不知何故,它在运行时会变成橙色。这里可能有什么问题?按钮的高度为40像素,所以将其设置蓝色渐变的图像错误拉伸成橙色渐变图像的UIButton

UIImage *image = [UIImage imageNamed:@"pressed.png"]; 
UIImage *stretchedImage = [[UIImage imageWithImage:image scaledToSize:frame.size] stretchableImageWithLeftCapWidth:0 topCapHeight:0]; 
[button setBackgroundImage:stretchedImage forState:UIControlStateHighlighted]; 
+0

可以还张贴pressed.png形象? – 2012-04-16 07:05:02

+0

抱歉我们对图片有财产保护,无法分享。 – tom 2012-04-16 07:15:18

+0

您可以重新创建对其他*图片可以共享的效果吗?如果没有其他问题,你可以解决问题。 – ChrisF 2012-04-16 10:57:14

回答

1

有几个可能的解释,大致下降可能性顺序之前,我做了调整大小:

1)你scaledToSize类别代码有缺陷在这里它颠倒了图像中字节的RGB顺序,将蓝色变为橙色。尝试不缩放图像,看看它是否是正确的颜色。您实际上并不需要进行缩放,按钮背景图像已经拉伸以适应运行时间。

2)你的项目中有两个pressed的p.png图像,可能在不同的文件夹中,所以你没有注意到,但由于编译器会在构建时将所有图像转储到同一个文件夹,所以你的blue pressed.png是被橙色压倒了。在磁盘上搜索您的项目以查看是否属于这种情况。

3)你以前有一个橙色的图像称为pressed.png,当你建立它使用旧的图像应用程序由于一些缓存的问题。尝试一个干净的版本,重置您的模拟器,并删除设备的应用程序。

4)你必须是橙色的图像的[email protected]版本。当您在设备上运行时,它使用的是视网膜版本,因此看起来不同。

5)你的PNG小号腐败不知何故 - 删除它,然后从头开始重新创建。我以前只有1px宽的图像,所以如果出现这种情况,请尝试将其扩大。