ios - Swift 2.2 如何更改选项卡栏 Controller 的背景颜色

标签 ios swift2 uitabbarcontroller uitabbar

我一直在尝试更改选项卡栏的背景,并在 ObjC 中阅读了很多帖子,其中很多都很旧。但是我没有找到任何适用于 Swift 的东西,这正是我正在使用的。

我终于从代码中弄明白了如何做到这一点,所以标签栏的颜色可以随着每次主题颜色的变化而改变。以下是我使用的引用资料:

  override func viewWillAppear(animated: Bool) {
    // set tab bar background color, including the More tab
    self.tabBarController?.tabBar.backgroundColor = UIColor.blueColor()
  }

我将这段代码放在应用程序启动时出现的第一个选项卡的 View Controller 中,以便它“首先”运行。据我所知,即使我有 8 个选项卡并使用“更多...”选项卡,它也能正常工作。

我将相同的代码绑定(bind)到各个选项卡中的按钮,因此我可以从我的代码中的任何位置更改选项卡栏的颜色。

但我承认,作为新手,我不确定这是更改标签栏颜色的最佳位置。如果这里有错误的地方,请指正。

我在这里发布这段代码是因为它可以节省我几个小时,我希望它可以为其他人节省一些(快速)时间。

最佳答案

这是更改 UITabBar 颜色的好方法。如果您想避免在嵌入在 UITabBarController 中的每个 viewController 中设置颜色,您还可以创建 UITabBarController 的子类并将其设置在那里。这样无论先出现哪个页面,都会设置颜色。

要创建 UITabBarController 的子类,只需转到文件 > 新建 > 文件 > cocoa touch 类...然后像这张照片一样设置你的文件

Add File

现在在您的 Storyboard中,在您的 tabBarController 上设置自定义类

Storyboard

最后,在您的文件中您创建了 MyTabBarController(或您所称的任何名称):

class MyTabBarController: UITabBarController {

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.tabBar.barTintColor = .blueColor()
}
...

关于ios - Swift 2.2 如何更改选项卡栏 Controller 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339242/

相关文章:

iphone - 一个基本的 UITabBar 应用程序

ios - 是否可以为将 APN 发送到同一应用程序的提供商创建多个 SSL 证书?

ios - 将音频文件从文档文件夹传递到事件 Controller

ios - 快速查找二维数组中的最大元素

iphone - 在 ViewController 和 TabBar child 之间传递数据

ios - 在运行时更新 UITabBarController 项目标题

ios - UISlider 设置带角的图像

ios - iOS 5-如何使用网址播放视频

ios - Siesta iOS POST 请求错误,代码为 "unsupported URL"

ios - Swift 2 无法使用类型的参数列表调用 'FSEventStreamCreate'