我在 xcode 项目中将自定义图像添加到 assets.xcassets 作为 3x。它显示得很好。接下来,我通过选择系统项作为自定义项和选择的图像作为自定义图像,将 iage 添加到选项卡栏项。还通过选择自定义图像填充了条形项目图像。
在我的故事板中,Tab Bar Item 和 Bar Item 中的图像图标完全变灰。
图像是在 Gimp 中创建的,透明图像大小缩放为 75x75
就像@luiyzheng 说的,这是图像渲染模式造成的。将呈现模式应用于 TabBar 中的所有项目的更好方法是将此代码放在 TabBarController viewDidLoad 方法中:
for item in self.tabBar.items! {
item.image = item.image?.imageWithRenderingMode(.AlwaysOriginal)
item.selectedImage = item.selectedImage?.imageWithRenderingMode(.AlwaysOriginal)
}
在 iOS7 之后,您可以设置 UIImage 是否使用当前视图的 tint color 渲染imageWithRenderingMode
:
始终原创
始终绘制原始图像,而不将其视为模板。
总是模板
始终将图像绘制为模板图像,忽略其颜色信息。
自动的
对使用图像的上下文使用默认渲染模式。
所以你想要的是:
self.barItem.image = UIImage(named: "yourImage")?.imageWithRenderingMode(.AlwaysOriginal)
通过将 renderingMode 设置为AlwaysOriginal
, UIImage 将始终绘制原始图像并且不会应用模板。然后你就可以得到你想要的。
祝你好运:-)