2017-09-30 7 views
0

Ich versuche, eine benutzerdefinierte Höhe zu meiner Navbar festlegen. Der Code, den ich habe funktioniert gut in iOS 11, Xcode 8; Aber jetzt habe ich Xcode 9 und iOS 11 und der Code funktioniert nicht. Das ist was ich habe ...Benutzerdefinierte Höhe der Navigationsleiste in iOS 11

var navBar: UINavigationBar = UINavigationBar() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.navBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height:82) 
    view.addSubview(navBar) 
} 


override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    self.navBar.frame = CGRect(x: 0, y: 0, width:self.view.frame.width, height: 82) 
} 

Danke für die Hilfe !!!

+0

so Sie haben zwei Navigationsleisten ?? – ozgur

+0

sorry ... ich habe die Änderungen aktualisiert – Edwjonn

Antwort

0

Sie haben

self.navBar.frame = CGRect(x: 0, y: 0, width: (bounds?.width)!, height: (bounds?.height)! + height) 
+0

ich habe versucht, aber die navbar ändert noch nicht die Höhe – Edwjonn

0

ich die Lösung gefunden zu setzen !!!

Ich suchte und fand ein Beispiel in der Apple-Dokumentation. Ich habe einfach:

-I eine Klasse von Typ UIView erstellt und i geputtet dies:

class ExtendedNavBarView: UIView { 

override func willMove(toWindow newWindow: UIWindow?) { 
    super.willMove(toWindow: newWindow) 

    layer.shadowOffset = CGSize(width: 0, height: CGFloat(1)/UIScreen.main.scale) 
    layer.shadowRadius = 0 

    layer.shadowColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1).cgColor 
    layer.shadowOpacity = 0.25 
} 

}

-Dann, ich geputtet dies in viewDidLoad:

navBar.shadowImage = #imageLiteral(resourceName: "TransparentPixel") 

    let extendedBar = ExtendedNavBarView() 
    extendedBar.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: 82) 
    view.addSubview(extendedBar) 

    extendedBar.backgroundColor = UIColor(red: 249/255, green: 249/255, blue: 249/255, alpha: 1.0) 

    self.navBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 82) 
    view.addSubview(navBar) 
Verwandte Themen