2016-05-11 19 views
4

Ich war für dieses Problem eine Weile suchen, ich meine Suchleiste Anzeige sichtbar sind wie BBC News App SearchBar In BBC News APPIOS UISearchBar Hintergrundfarbe in iOS 9

Ich versuche, alle damit verbundenen Verfahren

for view in searchBar.subviews { 
     if view.isKindOfClass(NSClassFromString("UISearchBarBackground")!) { 
      view.removeFromSuperview() 
      break; 
     } 
    } 

    self.searchBar.tintColor = UIColor.clearColor() 
    self.searchBar.backgroundColor = UIColor.clearColor() 
    self.searchBar.translucent = true 

hier ist mein Ausgabe enter image description here

Bin ich etwas etwas verpassen ??? Bitte hilf mir, Danke!

+2

Satz self.searchbar.barTintColor = UIColor.redColor() – riddhi

+0

wie Sie verschiedene Statusleiste Farbe haben? –

+0

thx für die Antwort, ich modifiziere nur das Bild lassen Sie meine Frage sauberer –

Antwort

9

Thx alle, löse ich die Frage durch das Hintergrundbild 'Null' Einstellung, die ein nicht vorhandenes Bild in meiner app ist

enter image description here

meine letzte Ausgabe enter image description here

* ***************** Letzte Lösung aktualisieren ************************

Nach dem Lesen Weitere Dokumente . Schließlich fand ich eine bessere Lösung,

for subView in searchBar.subviews { 
     for view in subView.subviews { 
      if view.isKindOfClass(NSClassFromString("UINavigationButton")!) { 
       let cancelButton = view as! UIButton 
       cancelButton.setTitle("取消", forState: UIControlState.Normal) 
       cancelButton.setTitleColor(UIColor.whiteColor(), forState: .Normal) 
      } 
      if view.isKindOfClass(NSClassFromString("UISearchBarBackground")!) { 
       let imageView = view as! UIImageView 
       imageView.removeFromSuperview() 
      } 
     } 
    } 
3

Alternative Version als Erweiterung

extension UISearchBar { 
    func removeBackgroundImageView(){ 
     if let view:UIView = self.subviews.first { 
      for curr in view.subviews { 
       guard let searchBarBackgroundClass = NSClassFromString("UISearchBarBackground") else { 
        return 
       } 
       if curr.isKind(of:searchBarBackgroundClass){ 
        if let imageView = curr as? UIImageView{ 
         imageView.removeFromSuperview() 
         break 
        } 
       } 
      } 
     } 
    } 
} 
+0

hinzufügen Danke für die Antwort, dies ist der richtige Weg für schneller. –

5

Swift 3

den Hintergrund ganz zu entfernen, setzen backgroundImage in ein leeres Bild:

searchBar.backgroundImage = UIImage() 

Um eine benutzerdefinierte Hintergrundfarbe festzulegen, verwenden Sie richtig ty:

searchBar.barTintColor = .green