在viewDidLoad
我尝试了以下内容来更新我的UITabBar的背景或“barTintColor”。我可以使用[[UITabBar appearance] setBarTintColor:[UIColor blackColor]];
来使用objective-c执行此操作。
我尝试了什么:
UITabBar.appearance().barTintColor = UIColor.white
self.navigationController?.navigationBar.barTintColor = UIColor.white;
UINavigationBar.appearance().barTintColor = UIColor.white
UINavigationBar.appearance().backgroundColor = UIColor.white
我想避免使用一些奇怪的NSNotificationCenter解决方案并从AppDelegate进行更新。为什么在Swift中实现这么难?非常感谢任何见解。
答案 0 :(得分:1)
注意:以下方法应该适用于Swift 3
。以下代码必须放在viewDidLoad
内以使其正常工作。
方法1:
tabBarController?.tabBar.barTintColor = UIColor.white
tabBarController?.tabBar.tintColor = UIColor.red
tabBarController?.tabBar.isTranslucent = false
<强>输出:强>
方法2:
注意:我将barTintColour
设置为绿色以显示两种方法都有效..
UITabBar.appearance().barTintColor = UIColor.green // Its strange why this method didn't worked for you?.Try updating your post with viewDidLoad.Its a better way to understand the issue.
UITabBar.appearance().tintColor = UIColor.purple
<强>输出:强>
答案 1 :(得分:0)
我可以使用
使用objective-c执行此操作[[UITabBar appearance] setBarTintColor:[UIColor blackColor]];
嗯,Swift相当于UITabBar.appearance().barTintColor = UIColor.black
。 (我不知道为什么你所有的代码都引用white
,如果你想要的是black
。)
您使用Swift而不是Objective-C这一事实会使 no 与此功能产生差异。如果这适用于你的应用程序的Objective-C版本但不适用于Swift版本,那么你在Swift版本中做了一些不同的东西 else - 你没有透露给我们的东西。