Длинный заголовок
У меня есть следующий largeTitle для navigationBar: «Длинный длинный длинный длинный заголовок». Но когда я перехожу в контроллер, я вижу что-то вроде этого: Длинный длин.... Я не вижу часть своего заголовка. Сначала была идея сделать заголовок в две строки. Но работающих примеров на iOS 13 я не нашел. Поэтому решил изменить размер текста заголовка:
self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.black, NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 24)]
Но проблема в том, что когда захожу в свой контроллер я вижу не largeTitle, а обычный размер navigationBar который повалятся при скроллинге. Но я хочу видеть largeTitle когда захожу в контроллер.
Конечно же я использую это, но не помогает:
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
Когда я перехожу к своему контроллеру, я вижу это:
А хочу видеть это:
Как это исправить?
Ответы (1 шт):
Можете вот так попробовать)
func adjustsNavigationTitleToFitWidth() {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationController?.navigationItem.largeTitleDisplayMode = .automatic
self.title = "Очень очень очень очень длимый текст"
self.navigationController?.navigationBar.largeTitleTextAttributes = [
.foregroundColor: UIColor.black,
.font : UIFont.preferredFont(forTextStyle: .largeTitle)
]
for navItem in(self.navigationController?.navigationBar.subviews)! {
for itemSubView in navItem.subviews {
if let largeLabel = itemSubView as? UILabel {
largeLabel.text = self.title
largeLabel.adjustsFontSizeToFitWidth = true
}
}
}
}

