let appearance = UINavigationBarAppearance()
// appearance는 메인 화면 위에 한겹을 쌓는다는 의미로 생각해야함
appearance.backgroundColor = .systemYellow // 배경을 노란색으로 설정
appearance.shadowColor = .clear // 그림자 없애기
// 그림자를 제거하면 네비게이션 바 아래의 선을 제거할 수 있다.
// 네비게이션 바와 메인 화면 사이에 밑줄이 생김 (이걸 제거함)
// 메인 화면의 백그라운드 색상을 사용
appearance.configureWithTransparentBackground()
// 반투명한 그림자를 백그라운드 앞에다 생성
appearance.configureWithDefaultBackground()
// 불투명한 색상의 백그라운드 생성
appearance.configureWithOpaqueBackground()
// 네비게이션 바의 일반 상태(스크롤하지 않는 상태)에서의 모양을 설정
navigationController?.navigationBar.standardAppearance = appearance
// 작은 네비게이션 바(compact 상태)에서의 모양을 설정 => 예를 들어, 작은 타이틀을 사용할 때입니다.
navigationController?.navigationBar.compactAppearance = appearance
// 스크롤이 끝난 상태에서의 네비게이션 바의 모양을 설정
navigationController?.navigationBar.scrollEdgeAppearance = appearance
최종 적용한 코드
func setupNavigationBar() {
let appearance = UINavigationBarAppearance()
// appearance.backgroundColor = .systemYellow // 배경을 노란색으로 설정
// appearance.shadowColor = .clear // 그림자 없애기
// 그림자 제거하고 기존의 백그라운드 색상을 사용 (그림자를 제거하고 기존 배경색을 사용)
appearance.configureWithTransparentBackground()
navigationController?.navigationBar.standardAppearance = appearance
navigationController?.navigationBar.compactAppearance = appearance
navigationController?.navigationBar.scrollEdgeAppearance = appearance
//navigationController?.navigationBar.isTranslucent = true
//navigationController?.navigationBar.shadowImage = UIImage() // 밑줄 없애기
}
'UIKIT' 카테고리의 다른 글
TextView에서 줄 수 제한 (0) | 2024.11.22 |
---|---|
동일한 조건 분기를 재사용하는 방법 (1) | 2024.11.22 |
layoutSubviews 반복 호출 방지 (0) | 2024.11.20 |
델리게이트 패턴으로 화면 전환하기 (2) | 2024.11.17 |
UISheetPresentation을 통해 수정, 삭제, 닫기 버튼 기능 구현 (0) | 2024.11.16 |