在情节提要中设置 UITabBarItem 图像但在 运行 应用程序后的处理方式不同

Setting UITabBarItem image in storyboard but different looking after run app

1) 我在 Assets.xcassets 中添加了四个 png 图像。

2)在情节提要中,我嵌入了一个标签栏控制器。设置 TabBarItem 图像。

3) 但在 运行 应用程序之后。我发现图像看起来与我的设置有点不同,我不知道为什么,谁能知道为什么以及如何修复?等你帮忙,谢谢

你需要设置 UIImage.renderingMode, 试试这个

NSArray *items = self.tabBar.items;
UITabBarItem *item = items[0];
item.image = [[UIImage imageNamed:@"tabbar_recruit.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

图像看起来不同的原因是因为它填充的是平面颜色,而您的 .png 包含一些白色而不是空白背景。 UIImage 有一个 属性 叫做 renderingMode。这个属性可以是defaultAlwaysOriginAlwaysTemplate

所以对于 UITabBarItem,默认渲染模式是 AlwaysTemplate,这就是填充图像的原因。并且由于您的图像在搜索图标内包含白色背景(它应该不包含绘图)它也会被填充。

所以你有两个选择:
1.去除图标的白色背景。
2. 由于您使用的是XCAssets,您可以在XCAssets 属性面板中更改渲染模式。

您可以在此处使用 XCAssets 执行此操作: