2016-04-03 162 views
0

我希望我的导航栏和搜索栏具有相同的颜色。我也想摆脱他们之间的细线,但与第一个相比,这似乎是一个小问题。 的导航栏属性设置是这样的:导航栏和搜索控制器

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() 

The result

这似乎为我ColorHelper返回不同的值LightPink但doesn't。我检查了HEX值的颜色,它是不正确地显示颜色的导航栏,比实际情况要轻一点。任何想法为什么?改变.barStyle没有改变任何东西。

+0

我已经更新了我的回答如下,有两个你的问题的答案s –

回答

1

相同颜色:

我有同样的问题,我的(我的UINavigationBar搭配同色系的1x1像素的图像)设置backroundImageUISearchBar解决它。并注意transluent场 - 它必须具有相同的值作为UINavigationBar

分隔符:

要删除导航栏和搜索栏之间的分隔符,你可以在你的AppDelegate

UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default) 
UINavigationBar.appearance().shadowImage = UIImage() 
使用此代码

但它只能如果你设置transluent场假

+0

'self.navigationController .navigationBar.setBackgroundImage(UIImage的(),forBarMetrics:.DEFAULT)? self.navigationController .navigationBar.shadowImage = UIImage的()'解决了这个问题对我来说 – Percolator

1

我想你的NavBar中有一个半透明的。您应该使用此代码关闭Transculent,您可以在viewDidLoad方法中使用它。

self.navigationController?.navigationBar.translucent = false 

此外,您可以在界面生成器中切换半透明。选择您的导航控制器,然后在文档大纲中选择导航栏,并在属性检查器取消选中半透明选项。

如果你不想你的消失时的导航栏用户轻按您的搜索栏使用本;

searchController.dimsBackgroundDuringPresentation = false 
searchController.hidesNavigationBarDuringPresentation = false 
+0

在我原来的文章中,灵魂似乎在图片中看到的视图起作用,它们现在是相同的颜色。问题是,当我选择搜索栏时,用于搜索的导航栏不可见。任何建议如何解决? – Percolator

+0

@Percolator你解决了这个问题吗? ? – emresancaktar