(iOS 9 及以下)如何在用户交互期间指定标签栏项目文本颜色(选中状态和正常状态)

Posted

技术标签:

【中文标题】(iOS 9 及以下)如何在用户交互期间指定标签栏项目文本颜色(选中状态和正常状态)【英文标题】:(iOS 9 and below) How do you specify tab bar item text color during user interactions (both selected and normal state) 【发布时间】:2017-04-28 13:58:13 【问题描述】:

我需要知道在实际用户交互期间是否有办法更改标签栏项目标题/文本(不是图像,因为它只需指定 tintColor 就可以正常工作)?就像点击某个按钮时改变它的颜色一样。

当前未选中/非活动的标签栏项目文本没有颜色。有没有办法通过故事板或代码来指定它的颜色?

我知道标签栏项目标题/文本颜色可以使用:

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: .normal)

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red], for: .selected)

但这仅适用于选项卡尚未呈现的情况。在创建标签栏控制器后调用上述方法不会做任何事情。请注意,我的问题是针对 ios 9 及更低版本的,因为在 iOS 10 中更改已选择和未选择的标签栏颜色非常容易。

【问题讨论】:

【参考方案1】:

我明白了。事实证明,单独指定属性而不是全局指定属性。

tabBar.items?[index].setTitleTextAttributes([NSForegroundColorAttributeName: normalColor], for: .normal)

tabBar.items?[index].setTitleTextAttributes([NSForegroundColorAttributeName: selectedColor], for: .selected)

【讨论】:

以上是关于(iOS 9 及以下)如何在用户交互期间指定标签栏项目文本颜色(选中状态和正常状态)的主要内容,如果未能解决你的问题,请参考以下文章

不容错过的iOS 8的导航交互

应用程序首次运行时加载所有标签栏视图

如何在长时间运行的服务器操作期间与用户交互(例如确认对话框)?

如何在每个应用程序视图的导航栏上添加带有动态内容的标签?

如何在 iOS 7 启动期间更改状态栏样式

在 UIView 动画期间难以允许用户交互