在故事板中设置UITabBarItem图像,但在运行应用程序时不同

时间:2016-01-11 02:47:17

标签: ios uitabbaritem

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

normal image

2)在故事板中,我嵌入了一个标签栏控制器。设置TabBarItem图像。 storyboard setting

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

2 个答案:

答案 0 :(得分:8)

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

因此对于UITabBarItem,默认呈现模式为AlwaysTemplate,这就是您的图片被填充的原因。并且由于您的图像在搜索图标内部包含白色背景(它应该不包含任何图形),因此它也会被填充。

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

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

enter image description here

答案 1 :(得分:1)

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

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