当我点击搜索图标时,我切换了另一个页面并将搜索栏添加到导航栏中,但切换之后,导航栏的顶部变成了黑色。
塞盖之前:
塞格之后:
class SearchViewController: UIViewController, UISearchBarDelegate {
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
setupSearch()
}
func setupSearch() {
searchController.searchBar.backgroundColor = #colorLiteral(red: 0.1333333333, green: 0.1333333333, blue: 0.1333333333, alpha: 1)
navigationController?.navigationBar.backgroundColor = #colorLiteral(red: 0.1333333333, green: 0.1333333333, blue: 0.1333333333, alpha: 1)
navigationItem.searchController = searchController
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
searchController.searchBar.delegate = self
}
}
情节提要->; 导航控制器->; 取消选中“显示”导航栏,然后再次运行。
尝试从下面的代码中添加扩展布局的边缘
self.navigationController?.navigationBar.isTranslucent = true
self.edgesForExtendedLayout = UIRectEdge.all
也可以从XIB/情节提要中进行。
我通过给我的视图添加背景色来解决这个问题。
view.backgroundColor = #colorLiteral(red: 0.1333333333, green: 0.1333333333, blue: 0.1333333333, alpha: 1)
然后我又添加了一个白色的视图。 我不知道这是不是正确的方式,但问题解决了。