更改字体后导航栏标题不会保持为粗体

问题描述

我使用此代码(基于this answer)将导航栏标题更改为Apple的纽约衬线字体。

init() {
        // if NavigationBarTitle is with Large Font
        if let newYorkDescriptor = UIFontDescriptor.preferredFontDescriptor(withTextStyle: .largeTitle).withDesign(.serif) {
            UINavigationBar.appearance().largeTitleTextAttributes = [.font : UIFont(descriptor: newYorkDescriptor,size: 0)]
        }
    }

导航栏标题以正确的字体和字体大小显示,但失去了普通导航栏标题的粗体外观。我该如何恢复?我缺少粗体或字体粗细参数吗?

解决方法

bold是字体描述符的一部分,您必须像[p>

UIFontDescriptor.preferredFontDescriptor(withTextStyle: .largeTitle)
     .withDesign(.serif)?.withSymbolicTraits(.traitBold)