본문 바로가기
프로그래밍 팁/iOS

UINavigationBar의 largeTitle 텍스트 속성 변경 방법

by Archivers 2020. 11. 13.

 

 

iOS 11의 내비게이션 바에 라지 타이틀이 추가됨으로써 기존의 내비게이션 바의 타이틀을 다른 방식으로 표현할 수 있게 되었습니다. 이 타이틀의 텍스트 속성을 변경하는 방법에 대해 알아보겠습니다.

라지 타이틀

 

스토리보드 방식

스토리보드에서 내비게이션 컨트롤러를 선택 후 내비게이션 바 영역을 선택합니다. 우측 사이드바의 [Show the Attributes Inspector] 탭에서 [Large Title Text Attributes] 섹션을 찾아 필요한 부분을 변경합니다. 위에서는 타이틀 폰트와 크기를 변경해 봤습니다.

 

코드 방식

해당 내비게이션 컨트롤러를 사용하고 있는 뷰 컨트롤러 등에서 속성을 지정해 줄 수 있습니다.

let titleAttributes: [NSAttributedString.Key: Any] = [
    .font: UIFont.systemFont(ofSize: 28, weight: .ultraLight),
    // 필요한 attribute가 있다면 더 추가
]

위처럼 NSAttributedString.Key를 키로 갖는 딕셔너리 타입의 지역 변수를 생성해 주면서 필요한 속성들을 할당해 줍니다. [NSAttributedString.Key: Any] 타입이 명시적으로 지정되어 있기 때문에 키에 타입을 생략한 채로 .font만 적을 수 있습니다.

 

그 뒤 titleAttributes를 다음의 프로퍼티에 할당해 줍니다.

self.navigationController?.navigationBar.largeTitleTextAttributes = titleAttributes

위처럼 변수를 따로 선언하는 것이 싫다면 다음과 같이 작성하는 것도 가능합니다.

self.navigationController?.navigationBar.largeTitleTextAttributes = [
    .font: UIFont.systemFont(ofSize: 28, weight: .ultraLight),
    // 필요한 attribute가 있다면 더 추가
]

실행해 보면 다음과 같이 변경이 된 것을 확인할 수 있습니다.

 

댓글