目次
今までの記述
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 }