加载后是不是可以更改 UITabBarController 文本颜色?
Posted
技术标签:
【中文标题】加载后是不是可以更改 UITabBarController 文本颜色?【英文标题】:Is it possible to change a UITabBarController text color after it's been loaded?加载后是否可以更改 UITabBarController 文本颜色? 【发布时间】:2017-02-22 05:12:15 【问题描述】:我想在 UITabBarControllers
文本颜色加载后根据用户的操作更改它。
我可以调用它,它会在启动时正确更改字体和颜色。
let appearance = UITabBarItem.appearance()
let attributes: [String: AnyObject] = [NSFontAttributeName:UIFont(name: "American Typewriter", size: 12)!, NSForegroundColorAttributeName: UIColor.green]
appearance.setTitleTextAttributes(attributes, for: .normal)
当我在应用程序完全启动后的任何时候尝试调用它时,什么都没有发生。
这可能吗,还是您可以在发布时一次性完成?
【问题讨论】:
你能用UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.redColor()], forState: .Selected)
检查或正常状态做.Normal
或与tabBarController.tabBar
tintColor 确认
你应该试试这个 - ***.com/questions/31117069/…
以这种方式设置色调颜色,但我不想更改色调颜色,我想更改正常的字体颜色。我尝试了 UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red], for: .normal) ,它在加载后调用 .normal 和 .selected 时没有任何作用。它确实可以预加载。我将仔细查看该堆栈链接,但所有这些似乎都是关于在加载或处理图像之前进行设置?
【参考方案1】:
看起来如果我遍历所有项目并手动设置它们就可以了。然后我需要重新设置所选项目的颜色。
仍然不确定为什么其他方式行不通?
for myItem in (tabBar.items)!
myItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red], for: .normal)
tabBar.selectedItem?.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.green], for: .normal)
【讨论】:
以上是关于加载后是不是可以更改 UITabBarController 文本颜色?的主要内容,如果未能解决你的问题,请参考以下文章
HTML中控制checkbox默认选中后,点击后其状态也不可被更改(取消)?
更改 LayoutParams 对象的属性后,是不是需要再次调用 setLayoutParams?