Bibi's DevLog 🤓🍎

UINavigationBar에 색상 넣기 (Customizing the appearance of UINavigationBar) 본문

📱🍎 iOS/🍏 Apple Developer Documentation

UINavigationBar에 색상 넣기 (Customizing the appearance of UINavigationBar)

비비 bibi 2022. 5. 25. 22:58

Customizing the appearance of UINavigationBar

  • UINavigationBar는 scrollEdgeAppearance의 확장이다.
    • 기본적으로 모든 내비게이션 바에 투명한 배경을 제공한다.
  • UINavigationBarAppearance 클래스는 UINavigation의 외형 설정 클래스이다.
    • 내비게이션 바의 색상이나 내용 색상을 바꾸고 싶을 때 사용 가능
  • 내용이 스크롤되는 뷰컨트롤러에서는 standardAppearancescrollEdgeAppearance를 UINavigationBar에 함께 적용시켜야 한다

AppDelegate에 아래와 같이 메서드와 코드를 추가한다.

AppDelegate.swift

import UIKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {


        let navBarAppearance = customNavBarAppearance()

      // 기존 UINavBar에 새 appearance 적용
        let appearance = UINavigationBar.appearance()
        appearance.scrollEdgeAppearance = navBarAppearance
        appearance.compactAppearance = navBarAppearance
        appearance.standardAppearance = navBarAppearance


        return true
    }

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

    func customNavBarAppearance() -> UINavigationBarAppearance {
        let customNavBarAppearance = UINavigationBarAppearance()
      // navigationbar에 적용할 설정 추가
        customNavBarAppearance.backgroundColor = .systemGray6
        return customNavBarAppearance
    }
}