这里有一种奇怪的情况。当我使用UISearchController
时,我首先得到了这种外观(如预期的那样)
但是,当您在TextField中选择开始搜索时,状态栏将变为完全白色(如果处于黑暗模式则为黑色)
这从未发生过。 UISearchController
中是否有一些设置可以告诉它在使用搜索栏时使用某种状态栏样式?
我希望它保持选择TextField之前的颜色
---编辑---
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItem.Style.plain, target: nil, action: nil)
frc = getFRC()
frc.delegate = self
self.resultsSearchController.delegate = self
let searchBar = self.resultsSearchController.searchBar
self.resultsSearchController.searchResultsUpdater = self
self.resultsSearchController.obscuresBackgroundDuringPresentation = false
self.resultsSearchController.extendedLayoutIncludesOpaqueBars = true
searchBar.sizeToFit()
self.tableView.tableHeaderView = searchBar
searchBar.placeholder = "Catalog Search"
searchBar.barTintColor = UIColor.darkAqua
searchBar.searchTextField.backgroundColor = UIColor.white
self.definesPresentationContext = true
searchBarHeight = searchBar.frame.height
do {
try frc.performFetch()
} catch {
error.tryError(tryMessage: "Perform initial fetch", loc: self)
}
if tutorials.catalog {
createTutorialTab(segueNameOnOpen: "catalogTutorial")
}
}
答案 0 :(得分:0)
您可以使用此功能更改状态栏的颜色,这是一种处理状态栏的技巧;)。如果您在整个应用程序中使用一个主题状态栏,请从AppDelegate中的didFinishLaunching调用此功能。
func changeStatusBar(backgroundColor: UIColor, contentColor:UIColor) {
if let statusBar = UIApplication.shared.value(forKey: "statusBar") as? UIView {
statusBar.backgroundColor = backgroundColor
statusBar.setValue(contentColor, forKey: "foregroundColor")
}
}