我遇到了png
图片的问题,与实际图片相比,iOS上的颜色错误。
无论我如何使用图像,它总是得到错误的颜色。我试过了UIButton
和UIImageView
,它给出了相同的结果。
这是对UIImage
:
UIImage* greenButtonImg = [UIImage imageNamed:@"btn_green"];
UIImageView* testView = [[UIImageView alloc] initWithImage:greenButtonImg];
[self.view addSubview:testView];
第二个图像是它在iOS上的外观,第一个按钮是它在Mac上的外观(Finder和Photoshop):
如您所见,第二个按钮的绿色不同。 这种情况发生在使用此图片的应用程序中。它发生在模拟器和iPhone 5上。
可能导致此问题的原因是什么?这可能是由创建图像的Photoshop中的设置引起的吗?
答案 0 :(得分:3)
正如杰夫在评论中写道,这是RGB配置文件的一个问题。
我设法通过在Photoshop中转换颜色配置文件来解决问题:
Edit -> Convert to Profile... -> Set profile to "Apple RGB"
答案 1 :(得分:1)
在iOS 7.0中,图像使用工具栏的tintColor
进行着色。
在iOS 7.0中,UIView
的所有子类都从基类派生出tintColor
的行为。
默认情况下,使用UIImage
创建图像(UIImageRenderingModeAutomatic
)。
如果您在图片上设置了UIImageRenderingModeAutomatic
,则会根据其上下文将其视为模板或原件。
某些UIKit
元素(包括导航栏,标签栏,工具栏,分段控件)会自动将其前景图像视为模板,尽管它们的背景图像被视为原始图像。
其他元素 - 例如图片视图和网络视图 - 将其图像视为原件。如果您希望始终将图像视为模板而不考虑上下文,请设置UIImageRenderingModeAlwaysTemplate
。
如果您希望始终将图片视为原始图片,请设置UIImageRenderingModeAlwaysOriginal
。
有关详细信息,请参阅Template Images。