2017-01-12 1 views
0
I erhöhe die navigationbar Höhe mit dem folgenden Code
override func viewDidLayoutSubviews() { 

    setUpSegmentControll() 

    let view = UIView(frame: CGRect(x: 0, y: 44, width: ScreenWidth, height: 40)) 
    view.backgroundColor = UIColor.init(colorLiteralRed: 89/255, green: 89/255, blue: 89/255, alpha: 1) 
    segmentControll.center.x = view.center.x 
    view.addSubview(segmentControll) 
    self.navigationController?.navigationBar.addSubview(view) 

} 
Aber das Segment geklickt keine Wirkung implementieren, was mit dem Code falsch
+0

, was die Ausgabe Bildschirm aussehen zu erhöhen? –

+0

http://oikehvl7k.bkt.clouddn.com/CE47969A-B47F-4EC3-BCB5-D77A437952F6.png – BaQiWL

+0

Machen Sie eine benutzerdefinierte Ansicht und beheben Sie es unter Navigationsleiste? Verbergen oder zeigen Sie sie in der viewWillAppear und viewWillDisappear Methode an. –

Antwort

1

Sie müssen die Größe der Navigation erhöhen Bar. Versuchen Sie unter Code es feine

import UIKit 

/*extension UINavigationBar { 
    open override func sizeThatFits(_ size: CGSize) -> CGSize { 
     var rect = self.frame; 
     let screenRect = UIScreen.main.bounds 
     rect.size.width = screenRect.size.width 
     rect.size.height = 104 
     return rect.size 
    } 
}*/ 

class ViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    self.navigationController!.navigationBar.clipsToBounds = true 
} 
override func viewDidAppear(_ animated: Bool) { 
    self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 104.0) 

} 
override func viewWillDisappear(_ animated: Bool) { 
    self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 64.0) 
} 


override func viewDidLayoutSubviews() { 

    let segmentControll = UISegmentedControl(items: ["1","2"]) 
    segmentControll.frame = CGRect(x: 0, y: 5, width: 300, height: 30) 
    let view = UIView(frame: CGRect(x: 0, y: 64, width: UIScreen.main.bounds.size.width, height: 40)) 
    view.backgroundColor = UIColor.init(colorLiteralRed: 89/255, green: 89/255, blue: 89/255, alpha: 1) 
    segmentControll.center.x = view.center.x 
    view.addSubview(segmentControll) 
    self.navigationController?.navigationBar.addSubview(view) 

} 

}

+0

danke für Ihre Antwort, aber UINavigationBar von allen Seiten wird zunehmen, wie Sie eine Seite erhöhen – BaQiWL

+0

Entfernen Sie die Erweiterung UINavigationBar und ich habe die Antwort mit zwei Methoden zu aktualisieren. –

Verwandte Themen