私は他の答えを見て、それらはすべて時代遅れであり、正確な答えを提供していないため、これは重複していないと確信しています。
Navigation ControllerといくつかのView Controllerがあります。ナビゲーションバーを少し高くして、必要なテキストサイズに合わせたいと思います。どうやってやるの ?
私はこれを試しました:
UINavigationBar.appearance().frame = CGRect(x: 0.0, y: 0.0, width: 320.0, height: 210.0)
しかし、何も起こりません...
また、Xcodeレイアウトボタンを使用してNav Barに制約を追加することもできませんでした。
誰かがこの問題を解決するのを手伝ってくれることを願っています。前もって感謝します!
これを行う1つの方法を次に示します。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let height: CGFloat = 50 //whatever height you want to add to the existing height
let bounds = self.navigationController!.navigationBar.bounds
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)
}
UINavigationControllerを拡張するクラスでこのコードを書くことができます
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let height = CGFloat(72)
navigationBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: height)
}
このようにUINavigationBar
に基づいてクラスを作成できます
class TTNavigationBar: UINavigationBar {
override func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width: UIScreen.main.bounds.width, height: 55)
}
}
そして、それをNavigationControllerに追加します。
これは、アプリのナビゲーションバーのすべての高さが調整されている場合に適しています。
extension UINavigationBar {
open override func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width: UIScreen.main.bounds.width, height: 51)
}
}