Computer >> 컴퓨터 >  >> 프로그래밍 >> iOS

iOS 내비게이션 바 배경색 설정하는 2가지 방법 (스토리보드 & 코드)

iOS 앱 개발에서 내비게이션 바(Navigation Bar)의 배경색을 변경해야 하는 경우가 자주 있습니다. 이 작업은 스토리보드(Storyboard)를 이용하는 방법과 코드로 직접 구현하는 방법, 두 가지로 처리할 수 있습니다. 각각의 방법을 자세히 살펴보겠습니다.

방법 1: 스토리보드에서 설정하기

스토리보드 에디터를 사용하면 코드 없이도 간편하게 내비게이션 바의 배경색을 변경할 수 있습니다. 다음 순서대로 진행하세요.

  • 새 프로젝트를 생성한 뒤, 뷰 컨트롤러(View Controller)를 선택하고 Navigation Controller에 Embed 처리합니다.

  • 내비게이션 바를 선택한 후 Attribute Inspector(속성 인스펙터)로 이동합니다.

Xcode 10 기준으로는 아래 화면과 같이 표시됩니다. 속성 인스펙터에서 Tint Color를 선택하면 해당 색상이 내비게이션 컨트롤러 전체에 적용됩니다.

iOS 내비게이션 바 배경색 설정하는 2가지 방법 (스토리보드 & 코드)

방법 2: 코드로 프로그래밍 방식 설정하기

코드를 통해 내비게이션 바의 배경을 변경하려면 해당 뷰 컨트롤러의 viewDidLoad() 또는 viewWillAppear() 메서드 안에 아래 코드를 작성하면 됩니다.

self.navigationController?.navigationBar.barTintColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)

텍스트 색상, 틴트 색상, 투명도 등 추가 속성 변경

배경색 외에도 텍스트 색상, 틴트 색상, 반투명 여부 등 다른 속성들을 함께 조정하고 싶다면 UINavigationBar.appearance()를 활용할 수 있습니다.

UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false

위 코드는 각각 다음과 같은 역할을 합니다.

  • barTintColor: 내비게이션 바의 배경색을 지정합니다.

  • tintColor: 바 버튼 아이템 등 상호작용 요소의 색상을 지정합니다.

  • titleTextAttributes: 제목 텍스트의 색상 및 폰트 등 스타일을 지정합니다.

  • isTranslucent: 내비게이션 바의 반투명 효과를 켜거나 끕니다.

참고로 NSAttributedStringKey.foregroundColor는 Swift 4 이전 문법이며, Swift 4.2 이상에서는 NSAttributedString.Key.foregroundColor로, Swift 5 이후에는 .foregroundColor로 간결하게 작성할 수 있습니다.