iOS 개발/UIKit
[NavgiationController] 네비게이션바 투명하게 만들기
스닥
2021. 9. 14. 14:53
네비게이션바는 StroyBoard를 통해서는 반투명하게(translucent) 만 가능하다.
하지만 이렇게 되면, 네비게이션바를 사용하는 앱들은 애니메이션이나 색변화 등을 화면 전체에 가득차게 만들 수가 없다.
이를 해결하기 위해서는 해당 View의 뷰컨트롤러에서 navigationBar을 다루어주면 된다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
}
그리고 이러한 적용을 해당 View의 NavigationBar에서만 적용시키고 싶다면, View가 꺼지게 될때의 경우도 고려해주면 된다.
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.shadowImage = nil
}