iOSでNavigationControllerを使用した際のTitleは通常中央に表示されます。
Large Titleを選択したら、大きいTitleが左寄せで表示されます。
ただし、Androidでは通常左寄せの表示になるようです。
Androidファーストな企画の場合、Large Titleではないのにも関わらず左寄せを要求されることがあります。
その時の実装を備忘録として残しておきます。
##実装
UIViewController+ext.swift
import UIKit
extension UIViewController {
/// NavigationBarの左にローカライズされたタイトルを表示する
func setLeftTitle(_ localizedStringKey: String) {
let titleLabel = UILabel(frame: CGRect(x: 4, y: 0, width: view.frame.width, height: 28))
titleLabel.text = localizedStringKey.localized
titleLabel.textAlignment = .left
titleLabel.font = .systemFont(ofSize: 17, weight: .semibold)
titleLabel.textColor = .white
navigationItem.titleView = titleLabel
}
}
全ての画面で実装を書くのは流石にしんどかったのでエクステンションで実装しました。
UIViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
setLeftTitle("左寄せで表示したいタイトル名")
}
この実装でいけました!
余白もいい感じ(?)に開いてます。
また、戻るボタンをカスタマイズしている画面ても問題なく同時表示できたので良かったです。