2017-09-23 29 views
2

スウィフト3では、制約を使用して高さを設定するだけで、カスタムナビゲーションバーの高さを変更することができました。今はもうできません。ストーリーボード内のナビゲーションバーの高さは実際には変更されません。私がサイズインスペクタに行っても、高さフィールドはグレーで、私はそれを変更することはできません。ビューをモーダルに表示していて、ナビゲーションバーを表示したい場合のベストプラクティスは何ですか?それはモーダルセグであるため、自動的には表示されません。スウィフトのナビゲーションバーの高さ4

+1

これはSwift 3と4の違いではありません。これはおそらくiOS 11の変更です。この言語は無関係です。 – rmaddy

+0

ストーリーボード上でも、高さを変更しようとすると、ビューに反映されません。 Xcode 8では、完全に機能しました。 – Nevin

+0

私はそれがiPhone xの導入と関係していると信じています – OverD

答えて

0

私は同様の問題があったので、私は研究を始めました。私のために働く解決策を見つけました...私はそれをどのように行ったかを表示しますが、私はストーリーボード、その後、クラスに行く)

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 
} 

2:それはあなたが「のUIViewを」タイプのクラスを作成する必要があり、それには、このコードを入れて)...すべてのコードに

1でありますどこにあなたのnavigationControllerがありますか? viewDidLoadメソッドでは、このコードを配置:

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

    let extendedBar = ExtendedNavBarView() 
    extendedBar.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: 82) //The height value is gonna determinate the total height of the navbar 
    view.addSubview(extendedBar) 

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

は基本的にnavigationBarの拡張図であり、あなたは高さに入れた値に依存し、トータルナビゲーションバーがあることって、多かれ少なかれ背が高いです。

あなたはそれについての詳細を学びたいのであれば、あなたはここに行くことができます: Custom NavigationBar

また、「TransparentPixel」の画像は、あなただけのサンプルプロジェクトをダウンロードする必要があり、ページ内にあります。

関連する問題