2016-04-03 12 views
0

Ich möchte, dass meine Navigationsleiste und Suchleiste dieselbe Farbe haben. Ich möchte auch die Haarlinie zwischen ihnen loswerden, aber das scheint ein kleines Problem im Vergleich zu dem ersten. Die navbar Attribute werden auf diese Weise festgelegt:Navigationsleiste und Suchsteuerung

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 
} 

Die Suchleiste Attribute:

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

Es kann als meine ColorHelper gibt unterschiedliche Werte für LightPink erscheinen, aber es nicht dargestellt wird. Ich habe die Farbe HEX-Werte überprüft und es ist die Navbar, die die Farbe nicht korrekt zeigt, ein bisschen heller als es tatsächlich ist. Irgendwelche Ideen warum? Die Änderung .barStyle hat nichts geändert.

+0

Ich habe meine Antwort unten aktualisiert, gibt es Antworten für beide Ihre Frage s –

Antwort

1

Gleiche Farbe:

Ich hatte das gleiche Problem und ich löste es durch backroundImage für mein UISearchBar (1x1 Pixel-Bild mit der gleichen Farbe wie meine UINavigationBar) einstellen. Und achten Sie auf transluent Feld - es den gleichen Wert wie Ihr UINavigationBar

Separator haben muss:

Zum Entfernen von Trennzeichen zwischen Navigation und Suchleiste können Sie diesen Code verwenden in Ihrem AppDelegate

UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default) 
UINavigationBar.appearance().shadowImage = UIImage() 

Aber es funktioniert nur, wenn Sie transluent Feld auf falsch setzen

+0

'self.navigationController? .navigationBar.setBackgroundImage (UIImage(), fürBarMetrics: .Default) self.navigationController? .navigationBar.shadowImage = UIImage()' löste es für mich – Percolator

1

Ich denke, Sie haben ein Translucent in Ihrer NavBar. Sie sollten die Transculent mit diesem Code ausschließen, den Sie in Ihrer viewDidLoad-Methode verwenden können.

Auch Sie können im Interface Builder transluzent wechseln. Wählen Sie Ihren Navigations-Controller und dann in der Dokumenten-Gliederung die Navigationsleiste aus und ändern Sie sie einfach im Attribute Inspector Deaktivieren Sie die Transluzente Option.

Wenn Sie Ihre navigationBar nicht verschwinden möchten, wenn Benutzer tippen Sie Ihre SearchBar verwenden Sie dies;

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

Die Auflösung funktionierte für den Blick auf das Bild in meinem ursprünglichen Beitrag, sie haben jetzt die gleiche Farbe. Das Problem ist, dass wenn ich die Suchleiste auswähle, die Navigationsleiste für die Suche unsichtbar ist. Irgendwelche Vorschläge, wie man das löst? – Percolator

+0

@ Percolator hast du das Problem gelöst? – emresancaktar

Verwandte Themen