【发布时间】:2017-07-27 01:49:45
【问题描述】:
我正在尝试将图像放到 UI 导航栏上,但遇到了一些色调问题。图片为 40*40 的透明 (png)。
图像在 xcode 中是这样的:
当我作为 UI 栏按钮项的图像放置时,它会显示为:
注意颜色的变化。应用程序的默认颜色是棕色,因此默认色调是透光的。
如何让图像的原始颜色显示出来?
谢谢
编辑:
长宽比问题:
【问题讨论】:
标签: ios uiimage uibarbuttonitem
我正在尝试将图像放到 UI 导航栏上,但遇到了一些色调问题。图片为 40*40 的透明 (png)。
图像在 xcode 中是这样的:
当我作为 UI 栏按钮项的图像放置时,它会显示为:
注意颜色的变化。应用程序的默认颜色是棕色,因此默认色调是透光的。
如何让图像的原始颜色显示出来?
谢谢
编辑:
长宽比问题:
【问题讨论】:
标签: ios uiimage uibarbuttonitem
取自苹果文档:
UIImageView 包含 tintColor 属性。当图像视图包含模板图像(即指定 UIImageRenderingModeAlwaysTemplate 渲染模式的图像)时,会将 tintColor 应用于图像。
所以你需要将你的图片的渲染模式设置为:UIImageRenderingModeAlwaysOriginal
UIImage *originalImage = [UIImage imageNamed:@"navBarImage.png"];
originalImage = [originalImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//Then apply the image to the navigation bar
如果您正在为似乎是这种情况的 iOS 应用程序进行开发,那么我建议您将图像保留为它显示 atm 的方式,因为它看起来比使用原始图像更好。这只是我的看法,我觉得它更清晰干净。
【讨论】:
斯威夫特:
let customImageBarButton = UIBarButtonItem(UIImage(named: "someImage.png").withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(handleClick))
22pt x 22pt 图标大小效果更好。
即66px x 66px 图片@3x 适用于 iPhone Plus 手机等
【讨论】: