Установить шрифт для отдельного слова в заголовке UINavigationController - PullRequest
1 голос
/ 03 июля 2019

У меня есть UINavigationController, для которого установлено значение prefersLargeTitles = true

example image

Я хотел бы установить заголовок так, чтобы вместо

Discogs |Поле поиска

читается

Discogs |Поле поиска

Однако я не вижу, как установить текст с помощью атрибутивного текста.

Возможно ли это? Я строю свой вид программно .

Я вижу свойство navigationController?.navigationBar.largeTitleTextAttributes, но так как оно принимает только пары ключ / значение, я не верю, что это можно использовать для применения этого эффекта.

1 Ответ

2 голосов
/ 03 июля 2019

Для большого заголовка:

Вы можете создать пользовательский вид (с меткой заголовка) и установить ограничения для панели навигации:

customView.widthAnchor.constraint(equalToConstant: 200).isActive = true
customView.heightAnchor.constraint(equalToConstant: 44).isActive = true

self.navigationItem.titleView = customView

Для обычного названия:

Вы можете установить собственную метку для titleItem заголовка ViewView:

let navLabel = UILabel()
let navTitle = NSMutableAttributedString(string: "Discogs", attributes:[
    NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 17.0),
    NSAttributedStringKey.foregroundColor: UIColor.black])

navTitle.append(NSMutableAttributedString(string: " | Search Box", attributes:[
    NSAttributedStringKey.foregroundColor: UIColor.black,
    NSAttributedStringKey.font: UIFont.systemFont(ofSize: 17.0, weight: 
        UIFont.Weight.light)]))

navLabel.attributedText = navTitle
self.navigationItem.titleView = navLabel

Источник:

Средство Душянта Банзала Артикул

...