我希望我的导航栏和搜索栏颜色相同。我也想摆脱它们之间的发际线,但与第一个相比,这似乎是一个小问题。 导航栏属性以这种方式设置:
self.navigationController?.navigationBar.barTintColor = ColorHelper.sharedInstance.LightPink()
if let navBarFont = UIFont(name: "HelveticaNeue-Light", size: 25.0) {
let navBarAttributesDictionary: [String: AnyObject]? = [
NSForegroundColorAttributeName: UIColor.whiteColor(),
NSFontAttributeName: navBarFont
]
self.navigationController?.navigationBar.titleTextAttributes = navBarAttributesDictionary
}
搜索栏属性:
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
searchController.searchBar.placeholder = "Search for new friends"
tableView.tableHeaderView = searchController.searchBar
searchController.searchBar.backgroundColor = ColorHelper.sharedInstance.LightPink()
searchController.searchBar.barTintColor = ColorHelper.sharedInstance.LightPink()
searchController.searchBar.backgroundImage = UIImage()
我的ColorHelper
可能会为LightPink
返回不同的值,但它不会。我检查了颜色的十六进制值,它是显示颜色不正确的导航栏,比它实际上要轻一点。有什么想法吗?改变.barStyle
并未改变任何内容。
答案 0 :(得分:1)
我认为您的NavBar中有半透明。您应该使用此代码关闭Transculent,您可以在viewDidLoad方法中使用。
self.navigationController?.navigationBar.translucent = false
您还可以在界面构建器中切换半透明。选择导航控制器,然后在文档大纲中选择导航栏,只需在属性检查器中更改取消选中半透明选项。
如果您不希望在用户点按您的SearchBar时消失您的navigationBar,请使用此功能;
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
答案 1 :(得分:1)
相同颜色:
我遇到了同样的问题,我通过为backroundImage
设置UISearchBar
(与我的UINavigationBar
颜色相同的1x1像素图像)解决了这个问题。并注意transluent
字段 - 它必须与您的UINavigationBar
<强>分离器:强>
要删除导航和搜索栏之间的分隔符,您可以在AppDelegate
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)
UINavigationBar.appearance().shadowImage = UIImage()
但只有将transluent
字段设置为false