-
iOS) Status Bar, Navigation Bar 바꾸기iOS 2019. 6. 7. 19:38728x90
오늘은 Status Bar 와 Navigation Bar 의 색을 바꿔보도록 하겠습니다!
대부분 아시겠지만 우선 Status Bar와 Navigation Bar의 차이부터 알아보도록 할까요?
둘의 차이가 보이시나요?
사진에서는 비슷해 보이지만,
StatusBar는 말 그대로 아이폰에서 시간이 표시되는 영역입니다.
NavigationBar는 다음과 같이 navigation item들이 올 수가 있어요.
중요한건 Navigation Bar가 있는 상태에서는 status bar를 덮어버리기 때문에 status bar를 변경해도 status bar의 변화가 보이지 않는습니다.
때문에 Navigation bar가 있는 상태라면 아무리 statusbar를 바꿔도 효과가 없어 보인다는 점… 기억해주세요 ( 저처럼 시간낭비 하지 마시구요 ㅠㅠ )
네 이제 어떻게 바꾸는지 방법을 알아보죠!
Status bar
status bar를 바꿔줄 때 두 가지 상황이 있을 수 있을거에요
- 앱 전체의 status bar를 변경
- 특정 컨트롤러의 status bar만 변경
1. 앱 전체의 Status bar 변경 (deprecated)
앱 전체의 status bar를 바꾸려면 AppDelegate.swift 에서
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. application.statusBarStyle = .lightContent return true }
다음과 같이 application의 statusBarStyle을 바꿔줄 수는 있는데요,
statusBarStyle은 iOS 9.0부터 deprecated 되었다고 해요.
이 방법 대신 UIViewController에서 바꿔주는 방법을 권장하고 있답니다!
2. 특정 컨트롤러에서 Status Bar 변경
네 그럼 권장하는 정석 방법을 알아볼까요?
아주 간단합니다.
preferredStatusBarStyle
을 override 받으면 된답니다!override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }
Naviagion Bar
네 이제 Navigation Bar를 변경하는 방법을 알아볼게요.
역시 아주 간단합니다.
viewDidAppear
에서 다음과 같이 변경해줄 수 있어요.override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) navigationController?.navigationBar.barStyle = .black }
여기서 barStyle 을 black으로 설정해주면 말 그대로 bar를 black으로 설정해주는거에요. 글씨도 그대로 내버려두면 안 보이겠죠? 그래서 시간 등 내부 글씨는 하얀색으로 바뀐답니다!
그리고 한 가지 더!
Navigation Bar가 있으면 status bar가 안 보인다고 말씀드렸잖아요? 그렇다면 navigation bar를 없애는 방법도 알아봐야겠죠?
매우 간단합니다. 앞의 barStyle을 설정해주던 것 대신 navigationController에서 setNavigationBarHidden 메서드를 사용해주면 된답니다!
override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) navigationController?.setNavigationBarHidden(true, animated: animated) }
조금이라도 도움이 되셨기를 바라며 물러가겠습니다! 감사합니다!
'iOS' 카테고리의 다른 글
iOS) BoostCourse) PTJ1 MusicPlayer (0) 2019.07.14 iOS) Core Data document 뿌시기 - 1 (0) 2019.07.04 iOS) Core Data Tutorial (0) 2019.05.13 iOS) Gradient 구현하기 (3) 2019.05.12 iOS) Carousel 구현하기 (4) 2019.05.12