我有以下代码。
//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];
正在使用的图像是带有箭头颜色#323232的png。我通过右键单击.app文件并选择显示包内容来验证这一点。
然而,当模式出现在iOS模拟器屏幕上时,箭头的颜色为#262626或#252525。
有没有人遇到这个问题?如果是这样,你是如何解决的,或者你是否解决了这个问题?
答案 0 :(得分:0)
总之,每个人都有这些问题。如果您在预览中打开该图像并使用pixie(开发工具),您将看到像素的值不同于文件中的值。该值是否与您在模拟器中看到的值不同?
你的png中是否嵌入了颜色配置文件?如果你有一个删除它可能会有所帮助(pngcrush将这样做作为一个选项)。如果没有,或者没有修复它,那么您可能需要首先使用以下内容将图像作为CGImageRef加载:
CGImageRef CGImageCreateWithPNGDataProvider (
CGDataProviderRef source,
const CGFloat decode[],
bool shouldInterpolate,
CGColorRenderingIntent intent
);
用颜色意图(第一个)和解码数组作为最后一个选项。