iOS/UIKIT

navigationController?.navigationBar.titleTextAttributes

밤새는 탐험가89 2024. 10. 9. 01:13

 

다음과 같은 코드를 통해 네비게이션 바의 제목 텍스트를 빨간색으로 설정할 수 있습니다:

navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.red]

 

 

또한, 텍스트의 폰트나 스타일을 설정하려면 여러 속성을 포함할 수 있습니다:

navigationController?.navigationBar.titleTextAttributes = [
    NSAttributedString.Key.foregroundColor: UIColor.blue, // 텍스트 색상
    NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 20), // 텍스트 폰트
    NSAttributedString.Key.shadow: NSShadow() // 그림자 설정 가능
]

 

또는, 원하는 색상 및 폰트를 적용할 수 있습니다. 

navigationController?.navigationBar.titleTextAttributes = [
    NSAttributedString.Key.foregroundColor: UIColor.label,
    NSAttributedString.Key.font: UIFont(name: "HakgyoansimBunpilR", size: 32) ?? UIFont.systemFont(ofSize: 18)
]

 

 

이 경우 title이 화면 가운데로 나온다. 

 

네비게이션 바의 타이틀을 왼쪽 정렬로 옮기려면 기본적으로 UINavigationBar는 타이틀을 중앙에 배치하도록 설계되어 있어 직접적으로 타이틀의 위치를 조정하기는 어렵습니다. 그러나 네비게이션 아이템에 커스텀 뷰를 추가하여 타이틀을 왼쪽에 위치시키는 방법을 사용할 수 있습니다.

 

override func viewDidLoad() {
    super.viewDidLoad()
    
    view.backgroundColor = .systemBackground
    
    // 타이틀을 UILabel로 정의
    let titleLabel = UILabel()
    titleLabel.text = "Search"
    titleLabel.font = UIFont(name: "HakgyoansimBunpilR", size: 18) ?? UIFont.systemFont(ofSize: 18)
    titleLabel.textColor = UIColor.label
    titleLabel.sizeToFit() // 크기 조정
    
    // 커스텀 타이틀을 leftBarButtonItem으로 설정
    navigationItem.leftBarButtonItem = UIBarButtonItem(customView: titleLabel)
    
    // 만약 다른 왼쪽 버튼 아이템이 필요하면 leftBarButtonItems를 사용할 수도 있습니다.
    // navigationItem.leftBarButtonItems = [UIBarButtonItem(customView: titleLabel)]
}