Skip to content

[UIKit] Navagation title을 줄바꿈 할 수는 없을까?

Ari edited this page Jul 24, 2022 · 1 revision

카탈로그에 가구를 추가하던 와중에 아이템의 이름이 너무 길어서 네비게이션 타이틀 제목이 너무 길면 줄바꿈 되지 않고 한줄에 줄임표로 ... 표시 되는 것이 마음에 들지 않았다.

시도 처음에는 NavigationBar의 뷰를 새롭게 할당해주는 솔루션을 시도해보았다.

하지만 내가 원했던 것은 large Title인 상태에서 여러줄로 표시되는 것을 원했는데, 해당 방법은 여러줄로 표시는 되지만 large 스타일은 아니였다.

그러다가 비공개 API를 활용하여 간단하게 해결하는 방법을 찾게 되었다.

해결 방법

extension UINavigationItem {
    
    func enableMultilineTitle() {
        setValue(true, forKey: "__largeTitleTwoLineMode")
    }
    
}

위처럼 UINavigationItem을 확장하여 기능을 추가한다. 그리고 네비게이션 아이템을 설정할 때, 위 메소드도 같이 호출해주면 내가 원하는 형태로 줄바꿈 되어 네비게이션 타이틀이 표시 된다.

이렇게 setValue 메소드를 활용해서 UI의 속성을 바꾸는 것은 처음 알아서 다른 기능은 없나 찾아보려고 했지만, 실패했다.

기회가 된다면 다른 속성값들도 확인해보고 싶다!


Clone this wiki locally