Swift - 无法更新UITabBar barTintColor

时间:2016-11-13 23:27:12

标签: ios objective-c swift uitabbarcontroller uitabbar

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中实现这么难?非常感谢任何见解。

2 个答案:

答案 0 :(得分:1)

注意:以下方法应该适用于Swift 3。以下代码必须放在viewDidLoad内以使其正常工作。

方法1:

    tabBarController?.tabBar.barTintColor = UIColor.white
    tabBarController?.tabBar.tintColor = UIColor.red
    tabBarController?.tabBar.isTranslucent = false

<强>输出:

enter image description here

方法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

<强>输出:

enter image description here

答案 1 :(得分:0)

  

我可以使用[[UITabBar appearance] setBarTintColor:[UIColor blackColor]];

使用objective-c执行此操作

嗯,Swift相当于UITabBar.appearance().barTintColor = UIColor.black。 (我不知道为什么你所有的代码都引用white,如果你想要的是black。)

您使用Swift而不是Objective-C这一事实会使 no 与此功能产生差异。如果这适用于你的应用程序的Objective-C版本但不适用于Swift版本,那么你在Swift版本中做了一些不同的东西 else - 你没有透露给我们的东西。