在 UITabBar 中为选定选项卡设置色调颜色

Posted

技术标签:

【中文标题】在 UITabBar 中为选定选项卡设置色调颜色【英文标题】:setting tint color for selected tab in UITabBar 【发布时间】:2013-12-26 10:25:59 【问题描述】:

在 Xcode 5 Dev Preview 2 中,我能够执行以下操作:

[[UITabBar appearance] setTintColor:[UIColor whiteColor]]; //选中的图文颜色(白色)

在 Xcode 5 Dev Preview 3 中,同一行代码会引发异常(见下文)。异常表明我可能想要使用'barTintColor' - 但我没有 - 因为这是整个 UITabBar 的颜色。如何在 UITabBar 中设置所选图像和文本的颜色?

Xcode 5 Dev Preview 3 中的新异常:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-setTintColor: is not allowed for use with the appearance proxy. Perhaps you want to use the barTintColor property.'

谢谢

【问题讨论】:

您在哪个 ios 版本中遇到此异常? 你想试试标签栏中的图片吗... 【参考方案1】:

我在最新的 Xcode 5 (5.0.2) 中没有看到这一点,但我知道您想要调用不同的方法来设置所选图像的色调颜色,具体取决于您是在 iOS 6 还是 7 上运行. 这是我的一个应用程序的一些示例代码:

if ([RFSUtilities isIOS7OrHigher])

    [[UITabBar appearance] setTintColor:[UIColor whiteColor]];

else

    [[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];

+[RFSUtilities isIOS7OrHigher] 只是使用the proper version check 检查我们是否在 iOS 7 或更高版本上运行:

+ (BOOL)isIOS7OrHigher

    float versionNumber = floor(NSFoundationVersionNumber);
    return versionNumber > NSFoundationVersionNumber_iOS_6_1;

希望这会有所帮助!

【讨论】:

【参考方案2】:

只需在UITabBar 类的用户定义运行时属性中添加带有颜色类型的tintColor

仍在为非活动标签寻找类似的方法...有人知道吗?

【讨论】:

以上是关于在 UITabBar 中为选定选项卡设置色调颜色的主要内容,如果未能解决你的问题,请参考以下文章

UITabBar 所选项目色调颜色

底部导航视图中选定选项卡的颜色

UITabBar 色调颜色不适用于图像

UITabBarItem 选定的选项卡背景:自定义?

在情节提要中更改选项卡栏项目选定的颜色

来自 UITabBar 的奇怪行为,其中背景颜色仅显示一个选项卡