ios - 来自 UITabBar 的奇怪行为,其中背景颜色仅显示一个选项卡

标签 ios swift3 uitabbarcontroller uitabbar

我正在使用 Swift 3,我研究了各种方法来设置 UITabBarbackgroundColor 颜色。最简单的方法是更改​​ AppDelegatedidFinishLaunchingWithOptions 中的属性。当我尝试这样做时,UITabBar 以标准颜色启动,这不是我想要的结果。

但是,当我转到下一个选项卡时,UITabBar 颜色更改为我想要的颜色。

在此之后,我尝试子类我的UITabBarController,并尝试在viewDidLoad中设置背景颜色>viewDidLayoutSubViews。所有这三种尝试都表现出完全相同的行为 - 即 UITabBar 以标准颜色启动,并且仅在我切换到下一个选项卡时才更改颜色。

这是我的代码:

应用委托(delegate)

func application(_ application: UIApplication, 
    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) 
    -> Bool {
        UITabBar.appearance().backgroundColor = UIColor.red
        return true
}

viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBar.backgroundColor = UIColor.red
}

viewDidLayoutSubviews

override func viewDidLayoutSubviews() {
    self.tabBar.backgroundColor = UIColor.red
}

我的问题如下:

1) 我可以将其作为约束问题消除吗?我没有为 UITabBar

修改或设置任何约束

2) 我有一个启动屏幕,用户可以在其中选择确认内容,然后将它们seguedUITabBarController。这可能是问题的一部分吗?

最佳答案

更改标签栏颜色的基本方法不是像您现在那样设置它的backgroundColor,而是设置它的barTintColor。 (要进行更复杂的控制,请使用彩色 backgroundImage。)

关于ios - 来自 UITabBar 的奇怪行为,其中背景颜色仅显示一个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41052346/

相关文章:

ios - 当手机处于静音模式时在我的后台应用程序上播放声音

ios - 无法在 View Controller iOS Swift 中显示 TabBar

ios - UIToolbarButton 转至 UITabBarController 中的特定 View

ios - 我无法使用类(通过创建实例)从一个 View Controller 执行到另一个 View Controller 的连接

iphone - 从 uinavigationbar 中删除 subview

ios - ActionSheet 未正确显示

swift - URLSession 数据任务超时错误

ios - 具有不同背景颜色的 NavigationBar 和 View

uikit - CGRectMake、CGPointMake、CGSizeMake、CGRectZero、CGPointZero 在 Swift 中不可用

ios - UITabbar项目objective-c中的颜色图标