为 UINavigationController 标题中的单个单词设置字体

Set font for single word in title of UINavigationController

我有一个 UINavigationController 设置为 prefersLargeTitles = true

我想设置标题,而不是

Discogs |搜索框

上面写着

Discogs |搜索框

但是我看不到如何通过属性文本设置文本。

这可能吗? 我正在以编程方式构建视图

我看到 navigationController?.navigationBar.largeTitleTextAttributes 属性 但因为它只接受 key/value 对,我不相信这可以用来应用这种效果。

对于大标题:

您可以创建自定义视图(带有标题标签)并对导航栏设置约束:

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

self.navigationItem.titleView = customView

常规标题:

您可以为 navigationItem 的 titleView 设置自定义标签:

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

来源:

Dushyant Bansal's Medium Article