使用 UIImage RenderingMode Always Template 在 iPhone 6 上出现的颜色不同

Posted

技术标签:

【中文标题】使用 UIImage RenderingMode Always Template 在 iPhone 6 上出现的颜色不同【英文标题】:Colours appearing different on iPhone 6 plus using UIImageRenderingModeAlwaysTemplate 【发布时间】:2015-07-09 14:49:53 【问题描述】:

我有一个在运行时重新着色的 PNG 图像:

logo.image = [[UIImage imageNamed:@"logo.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
logo.tintColor = [UIColor whiteColor];

这在我的 iPhone 6、所有模拟器等上显示为白色;但在 iPhone 6+ 上它是一种稍深的灰色。我错过了有什么原因吗?

这是 iPhone 6+ 的屏幕截图(所有导航项都应该是白色的 - 和其他所有设备一样)

【问题讨论】:

在上下文中它绝对不是白色的 您能否展示与这些导航项相关的代码? 粘贴一些代码并添加差异截图。设备 您能展示一下您是如何在导航栏中添加此徽标的吗?如果您可以发送一个图像集也很棒 【参考方案1】:

barTintColor 默认是半透明的,除非你设置 半透明属性为NO。

试试这个

self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
self.navigationController.navigationBar.translucent = NO;

【讨论】:

以上是关于使用 UIImage RenderingMode Always Template 在 iPhone 6 上出现的颜色不同的主要内容,如果未能解决你的问题,请参考以下文章

UIImage RenderingMode:UIImageRenderingModeAutomatic vs UIImageRenderingModeAlwaysOriginal vs UIImage

使用 UIImage RenderingMode Always Template 在 iPhone 6 上出现的颜色不同

android 怎样实现 uiimagerenderingmodealwaysoriginal效果

设置Image渲染模式使用TintColor

imageWithRender(图片的渲染模式)

iOS 13`withTintColor`不服从我分配的颜色