Ändern Sie die navigation bar unten Rahmenfarbe Swift
Funktioniert es mit
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//Do any additional setup after loading the view, typically from a nib.
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIColor.redColor().as1ptImage()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Dispose of any resources that can be recreated.
}
}
extension UIColor {
func as1ptImage() -> UIImage {
UIGraphicsBeginImageContext(CGSizeMake(1, 1))
let ctx = UIGraphicsGetCurrentContext()
self.setFill()
CGContextFillRect(ctx, CGRect(x: 0, y: 0, width: 1, height: 1))
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
Aber wenn ich einen UITableView es erscheint nicht auf ihn, und wenn ich einen UISearchView es erscheint, aber entfernt die Navigationsleiste.
Weiß jemand, wie man dieses Problem lösen?
InformationsquelleAutor TheoF | 2016-07-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie die
shadowImage
Eigenschaft der Navigationsleiste.Versuchen, diese ein. Ich erstellte eine Kategorie UIColor als Helfer, aber Sie können umgestalten die Art und Weise, die Sie bevorzugen.
Option 1: auf einer einzigen Navigations-bar
Und dann in Ihrer view-controller (änderung der UIColor, was Sie wollen):
Option 2: Verwendung der Auftritt-proxy, auf alle Navigationsleisten
Statt der Einstellung von hintergrund-Bild-und-Schatten-Bild auf jede Navigationsleiste ist es möglich, auf die Sie sich verlassen UIAppearance proxy. Sie könnten versuchen, fügen Sie diese Zeilen in Ihre AppDelegate, anstatt der vorherigen in die Kommentarzeichen vor der viewDidLoad.
viewDidLoad
Methode, und alle arbeiteten. Dann haben Sie Hinzugefügt, tableview und eine Suche Ansicht, die view-controller über das storyboard, nicht ändern-code und es aufgehört zu arbeiten?self.navigationController?.navigationBar.setBackgroundImage(UIColor.yellowColor().as1ptImage(), forBarMetrics: .Default)
mit der Farbe, die Sie wollen. Wie auch immer, ich verstehe immer noch nicht, mit "nicht auf den tableview". Es erscheint in der Navigationsleiste, nicht auf eine bestimmte Ansicht. Ich sollte wirklich sehen, den code, oder ein paar screenshots.UIColor.blackColor.as1ptImage()
oderUIColor.blackColor().as1ptImage()
? Der Letzte ist der richtige. Ich weiß, dass die code-Zeilen sind die gleichen, aber ich glaube, Sie sind mit Ihnen an der falschen Stelle, das ist, warum ich fragte nach dem code. Suche anzeigen keine Navigationsleiste. Ich denke, Sie verkennen die Nutzung der navigation-controller.Wunderbare Beiträge von @Leitermontage.quartz, @Alessandro und @Pavel.
Hier ist was ich getan habe, für...
Verwendung in
viewDidLoad()
:für Swift 3.0 nur ändern Sie diese Zeile:
zu diesem:
Putting @alessandro-orru ' s Antwort in einer Erweiterung
dann in Ihrer view-controller nur hinzufügen: