将原始图像设置为标签栏项目

Posted

技术标签:

【中文标题】将原始图像设置为标签栏项目【英文标题】:Set original images to tab bar items 【发布时间】:2012-02-27 14:35:34 【问题描述】:

我想知道在 UITabBar 中,是否有任何方法可以将彩色(原始)图像设置为标签栏项目,经过多次搜索,我找到了更改标签栏颜色的方法,即设置彩色栏可以解决问题的图像。

[self.homeTabbar.tabBar insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab.JPG"]] autorelease] atIndex:0]; 

我已经阅读了几篇帖子中的回复,苹果希望只使用黑色标签栏和带有蓝色的灰色图像作为标签栏项目的选择。

改变标签栏颜色后,如下图所示:

现在您可以看到添加和所有标题项目图像不是它们分配的方式,即实际图像是如下所示的颜色:

想知道为什么使用标签栏项目时原始图像会受到影响。

任何人都可以提供一个示例解决方案/建议,而不是建议使用 twitter 应用程序或已经为此类帖子提供的其他一些建议,这对于像我这样的初学者来说很难。

提前谢谢大家:)

【问题讨论】:

【参考方案1】:

您只能在 ios 5 或更高版本中执行此操作:

在UITabBarItem上看看这个方法:

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage

【讨论】:

哦,不过我的ios版本是4.3,我在ios5测试的时候会告诉你的。谢谢回复 你可以在该方法下发布一些示例代码,只是为了提出一个想法 恐怕我没有任何示例代码。只需在您想要拥有不同图像的选项卡栏项目上调用该方法,并为其提供两张图像,一张用于选择(活动)选项卡时,另一张用于未选择选项卡时。​​span> 如果你真的想在5之前的iOS版本上使用自定义图像,你可以试试PESTabBarAddition。请记住,Apple 在 iOS 5 之前的任何设备上都不支持此功能。 感谢Amorya先生的所有关注和有用的信息,我会考虑所有这些并相应地构建我的代码,再次感谢TC :)【参考方案2】:
[myTabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"aboutus.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"undo.png"]]

你可以使用它。但它仅适用于 iOS 5 及以上版本。通过检查 iOS 5 的设备版本,我也遇到了同样的问题。仍在寻找 iOS 4 及更低版本的解决方案。

【讨论】:

非常感谢,但我在上面得到了类似的答案,但是一个非常有用的答案:) 我通过检查 ios 版本为 ios4 解决了这个问题。并使用 ios4 的边框图像。然后,如果没有自定义标签栏,您将获得不错的标签栏,带有适用于 ios4 的标签栏项目和适用于 ios5 的原始图像效果。可能你喜欢这个主意。 嗯,听起来不错,会尝试实施并回复您【参考方案3】:

[_manageCardController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"managecards_icon.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"managecards_icon.png"]];

【讨论】:

以上是关于将原始图像设置为标签栏项目的主要内容,如果未能解决你的问题,请参考以下文章

设置选定的标签栏项目色调?

iOS 8:在界面构建器中设置的自定义标签栏项目的选定图像不起作用

自定义标签栏和标签栏项目

在运行时设置标签栏图像

使用与标签栏相同的视觉效果设置导航栏的样式

iOS 标签栏项自定义图像