0

我有以下代码。

//Create a view to place repeated arrow in.
UIView *rootView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 60)];

//Add Repeated Arrows to the top of the view using a color pattern.
UIImage *arrowImage = [UIImage imageNamed:@"arrow-down"];
UIColor *repeatedArrowColor = [UIColor colorWithPatternImage:arrowImage];
CGRect repeatedArrowFrame = CGRectMake(0, 0, 320.0, [arrowImage size].height);
UIView *repeatedArrowView = [[UIView alloc] initWithFrame:repeatedArrowFrame];
[repeatedArrowView setBackgroundColor:repeatedArrowColor];

[rootView addSubview:repeatedArrowView];

使用的图像是带有彩色箭头的 png #323232。我通过右键单击 .app 文件并选择显示包内容来验证这一点。

用于生成图案的图像。

然而,当图案出现在 iOS 模拟器屏幕上时,箭头的颜色是 #262626 或 #252525。

iOS 模拟器中的错误颜色箭头

有没有人遇到过这个问题?如果是这样,您是如何解决的,或者您是否解决了它?

4

1 回答 1

0

总之每个人都有这些问题。如果您在预览中打开该图像并使用 pixie(开发工具),您肯定会看到与文件中不同的像素值。该值与您在模拟器中看到的不同吗?

您的 png 是否嵌入了颜色配置文件?如果您删除它,它可能会有所帮助(pngcrush 将这样做作为一个选项)。如果没有,或者不能修复它,那么您可能需要首先将图像加载为 CGImageRef 使用:

CGImageRef CGImageCreateWithPNGDataProvider (
   CGDataProviderRef source,
   const CGFloat decode[],
   bool shouldInterpolate,
   CGColorRenderingIntent intent
);

并使用颜色意图(第一个)和作为最后一个选项的解码数组。

于 2012-09-12T22:52:17.537 回答