backgroundColor
로 하면 노치 부분이 변경되지 않는다navigationController.navigationBar.backgroundColor = .red
barTintColor
는 투명이였다가 스크롤하면 색상이 바뀐다navigationController.navigationBar.barTintColor = .red
UINavigationBarAppearance
를 먼저 초기화 하고navigationBar
의 standardAppearance
와 scrollEdgeAppearance
으로 설정하면 된다scrollEdgeAppearance
를 안하면 스크롤 했을 때 색상이 나온다(barTintColor
처럼)let navigationBarAppearance = UINavigationBarAppearance()
navigationBarAppearance.backgroundColor = .red
navigationController.navigationBar.standardAppearance = navigationBarAppearance
navigationController.navigationBar.scrollEdgeAppearance = navigationBarAppearance