目次
今までの記述
UINavigationControllerの背景色、文字色、下線非表示の今までのソースコードは以下です。
public class func setNavigationController(vc: UIViewController) -> UINavigationController {
let nav = UINavigationController(rootViewController: vc)
// ナビゲーションバーの背景色
nav.navigationBar.barTintColor = UIColor.red
// ナビゲーションバーのアイテムの色 (戻る < とか 読み込みゲージとか)
nav.navigationBar.tintColor = UIColor.white
// ナビゲーションバーのテキストを変更する
nav.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
// ナビゲーションバーの透過禁止
nav.navigationBar.isTranslucent = false
nav.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
// 下線非表示
nav.navigationBar.shadowImage = UIImage()
return nav
}
スポンサードリンク
iOS15以降の背景色設定
iOS15以上で、背景色を設定する場合には、以下の定義を追加する必要があります。
let appearance = UINavigationBarAppearance()
// 背景色
appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
appearance.backgroundColor = UIColor.red
// ナビゲーションバーに反映
nav.navigationBar.standardAppearance = appearance
nav.navigationBar.scrollEdgeAppearance = appearance
上記の記述を含めたソースは以下です。
public class func setNavigationController(vc: UIViewController) -> UINavigationController {
let nav = UINavigationController(rootViewController: vc)
// ナビゲーションバーの背景色
nav.navigationBar.barTintColor = UIColor.red
// ナビゲーションバーのアイテムの色 (戻る < とか 読み込みゲージとか)
nav.navigationBar.tintColor = UIColor.white
// ナビゲーションバーのテキストを変更する
nav.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
// ナビゲーションバーの透過禁止
nav.navigationBar.isTranslucent = false
nav.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
// 下線非表示
nav.navigationBar.shadowImage = UIImage()
if #available(iOS 15.0, *) {
let appearance = UINavigationBarAppearance()
// 背景色
appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
appearance.backgroundColor = UIColor.red
// ナビゲーションバーに反映
nav.navigationBar.standardAppearance = appearance
nav.navigationBar.scrollEdgeAppearance = appearance
}
return nav
}
スポンサードリンク
iOS15以降の下線非表示
iOS15以上で、下線を非表示に設定する場合には、以下の定義を追加する必要があります。
let appearance = UINavigationBarAppearance() // 下線非表示 appearance.shadowImage = UIImage() appearance.shadowColor = .clear // ナビゲーションバーに反映 nav.navigationBar.standardAppearance = appearance nav.navigationBar.scrollEdgeAppearance = appearance
上記の記述を含めたソースは以下です。
public class func setNavigationController(vc: UIViewController) -> UINavigationController {
let nav = UINavigationController(rootViewController: vc)
// ナビゲーションバーの背景色
nav.navigationBar.barTintColor = UIColor.red
// ナビゲーションバーのアイテムの色 (戻る < とか 読み込みゲージとか)
nav.navigationBar.tintColor = UIColor.white
// ナビゲーションバーのテキストを変更する
nav.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
// ナビゲーションバーの透過禁止
nav.navigationBar.isTranslucent = false
nav.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
// 下線非表示
nav.navigationBar.shadowImage = UIImage()
if #available(iOS 15.0, *) {
let appearance = UINavigationBarAppearance()
// 下線非表示
appearance.shadowImage = UIImage()
appearance.shadowColor = .clear
// ナビゲーションバーに反映
nav.navigationBar.standardAppearance = appearance
nav.navigationBar.scrollEdgeAppearance = appearance
}
return nav
}
スポンサードリンク
iOS15以降のソースコードまとめ
iOS15以上で、背景色の設定と、下線の非表示を設定する場合には、以下の定義を追加する必要があります。
let appearance = UINavigationBarAppearance() // 下線非表示 appearance.shadowImage = UIImage() appearance.shadowColor = .clear // 背景色 appearance.titleTextAttributes = [.foregroundColor: UIColor.white] appearance.backgroundColor = UIColor.red // ナビゲーションバーに反映 nav.navigationBar.standardAppearance = appearance nav.navigationBar.scrollEdgeAppearance = appearance
上記の記述を含めたソースは以下です。
public class func setNavigationController(vc: UIViewController) -> UINavigationController {
let nav = UINavigationController(rootViewController: vc)
// ナビゲーションバーの背景色
nav.navigationBar.barTintColor = UIColor.red
// ナビゲーションバーのアイテムの色 (戻る < とか 読み込みゲージとか)
nav.navigationBar.tintColor = UIColor.white
// ナビゲーションバーのテキストを変更する
nav.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
// ナビゲーションバーの透過禁止
nav.navigationBar.isTranslucent = false
nav.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
// 下線非表示
nav.navigationBar.shadowImage = UIImage()
if #available(iOS 15.0, *) {
let appearance = UINavigationBarAppearance()
// 下線非表示
appearance.shadowImage = UIImage()
appearance.shadowColor = .clear
// 背景色
appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
appearance.backgroundColor = UIColor.red
// ナビゲーションバーに反映
nav.navigationBar.standardAppearance = appearance
nav.navigationBar.scrollEdgeAppearance = appearance
}
return nav
}