目的

ナビゲーションバーに関する設定メモ2つを記載していく


ナビゲーションバーの右側に色付きアイコンボタンを設定

コードだけで、ナビゲーションバーの右側に、色を指定した画像アイコンのボタンを設定する。
ポイントはAutoLayout設定の部分でそれもコードで実装している。

    let button = UIButton(type: .system)
    button.frame = CGRect(x: 0.0, y: 0.0, width: 60, height: 60)//サイズ
    button.setImage(#imageLiteral(resourceName: "Image"), for: .normal)//画像設定
    button.tintColor = #colorLiteral(red: 0, green: 0.5898008943, blue: 1, alpha: 1)
    
    button.addTarget(self, action: #selector(self.rightButtonPress), for: UIControl.Event.touchUpInside)
    let barItem = UIBarButtonItem(customView: button)
    //コードでAuto Layout設定をする
    let currWidth = barItem.customView?.widthAnchor.constraint(equalToConstant:38)
    currWidth?.isActive = true
    let currHeight = barItem.customView?.heightAnchor.constraint(equalToConstant: 38)
    currHeight?.isActive = true
    
    self.navigationItem.rightBarButtonItem = barItem



ナビゲーションバーの高さを取得

ナビゲーションバーの高さを取得するコード。
iOS11からラージタイトルナビゲーションバーとか出てきたし、44ptなどと固定でやるのは危険

let navigationBarHeight = self.navigationController.navigationBar.frame.size.height