質問失礼します。
ナビゲーションバーの高さやバーアイテムのサイズを変更したくて、
下記のようにナビゲーションバーのカスタムクラスを記載しました。
sizeThatFitsメソッドでサイズ変更が出来るようなのですが、
試したところナビゲーションバーの高さは変わりませんでした。
調べてlayoutSubviewsにも追記してみたのですが、
サブビューの中央に配置されたナビゲーションバー自体のサイズは変わっていません。
また、ツールバー部分にはサブビューが重なってくれませんでした。
どうすればナビゲーションバーやバーアイテム自体のサイズを変更する事が出来るのでしょうか。
どなたかご教授いただけますと嬉しいです。
よろしくお願い致します。
Swift
1import UIKit 2 3class CustomNavigationBar: UINavigationBar { 4 5 var customHeight : CGFloat = 100 6 7 override func sizeThatFits(_ size: CGSize) -> CGSize { 8 9 return CGSize(width: UIScreen.main.bounds.width, height: customHeight) 10 11 } 12 13 override func layoutSubviews() { 14 super.layoutSubviews() 15 16 17 for subview in self.subviews { 18 var stringFromClass = NSStringFromClass(subview.classForCoder) 19 if stringFromClass.contains("UIBarBackground") { 20 21 subview.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: customHeight) 22 23 subview.backgroundColor = .green 24 subview.sizeToFit() 25 } 26 27 stringFromClass = NSStringFromClass(subview.classForCoder) 28 29 30 if stringFromClass.contains("UINavigationBarContentView") { 31 32 let centerY = (customHeight - subview.frame.height) / 2.0 33 subview.frame = CGRect(x: 0, y: centerY, width: self.frame.width, height: subview.frame.height) 34 subview.backgroundColor = .yellow 35 subview.sizeToFit() 36 37 } 38 } 39 } 40} 41
あなたの回答
tips
プレビュー