【发布时间】:2017-08-04 07:46:44
【问题描述】:
所以我正在构建一个选项卡式应用程序,并且该设计要求在某些应用程序页面上使用 UINavigationBar。将导航栏添加到我的一个选项卡式 ViewController 后,UITabBar 的颜色从最初设置的颜色(蓝绿色)变为灰色。我尝试在我的 AppDelegate 中设置 TabBar 背景颜色(在所有其他选项卡上都可以正常工作),我尝试在自定义 TabBar 视图控制器中本地设置它(根本不影响颜色),我什至尝试设置它在特定的 View Controller 本身中。我也尝试设置运行时属性无济于事。我不知道下一步该尝试什么。我已经在下面发布了代码和屏幕截图。
AppDelegate.swift
import Firebase
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let myGreenBG = UIColor(colorLiteralRed: 43/255.0, green: 111/255.0, blue: 109/255.0, alpha: 1.0)
FirebaseApp.configure()
UITabBar.appearance().backgroundColor = myGreenBG
UINavigationBar.appearance().backgroundColor = myGreenBG
return true
}
...
TabBarViewController.swift 导入 UIKit
class tabBarViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let myGreenBG = UIColor(colorLiteralRed: 43/255.0, green: 111/255.0, blue: 109/255.0, alpha: 1.0)
//self.tabBar.delegate = self
//Code to render the unselected images in the tab bar
tabBar.backgroundColor = myGreenBG
for items in 0 ..< tabBar.items!.count {
let tabItemIndex = tabBar.items![items]
tabItemIndex.image = tabItemIndex.image!.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
/*for tabBarItem in (self.tabBarController?.tabBar.items!)!{
if !(tabBarItem.
}
}*/
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
...
正确显示
显示不正确
任何建议或提示将不胜感激!
【问题讨论】:
-
UITabBar.appearance().backgroundColor = UIColor(colorLiteralRed: 43/255.0, green: 111/255.0, blue: 109/255.0, alpha: 1.0) 在 viewWillApear 和 ViewWillDisappear 中试试这个以前的颜色
-
@JaydeepVyas 不幸的是,这不起作用。似乎将它设置为背景颜色意味着它存在但低于任何 NavBar 设置添加。正如 Abhishek 建议的那样,设置 barTintColor 似乎是唯一的方法
标签: swift3 uinavigationcontroller uinavigationbar ios10 uitabbar