2017-09-30 5 views
0

私はnavbarにカスタム高さを設定しようとしています。私がiOS 11、Xcode 8でうまく動作するコード。今はXcode 9とiOS 11があり、コードが動作していません。これは私が持っているものです...iOS 11のnavbarのカスタム高さ

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) 
} 

ありがとうございます!

+0

をので、私は単純にこれをしませんでした2つのナビゲーションバーがありますか? – ozgur

+0

申し訳ありません...私は変更を更新しました – Edwjonn

答えて

0

あなたは

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

私は試しましたが、navbarはまだ高さを変更しません – Edwjonn

0

を設定する必要が私は解決策を見つけました!

私は検索して、Apple Documentationの例を見つけました。 -Iは、タイプのUIViewのクラスを作成し、私はこのパット

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 
} 

}

-Thenを、私はの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) 
関連する問題