用粗体和斜体设置标签字体

Cod*_*ess 5 fonts ios nsmutableattributedstring swift

我正在尝试使用 将标签的特定部分设置为粗体和斜体NSMutableAttributedString,但我只能得到一个或另一个。我使用的字体是 Clear Sans。将故事板上的整个标签字体设置为Bold Italic正常工作,但我只需要其中的一部分。所以我用

for family in UIFont.familyNames() {
    print("\(family)\n\t\(UIFont.fontNamesForFamilyName(family))")
}
Run Code Online (Sandbox Code Playgroud)

以确保它在那里,我发现

Clear Sans
    ["ClearSans", "ClearSans-Bold", "ClearSans-Italic"]
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它不在此处,而是在故事板中。所以我尝试使用这个答案,但它崩溃了,我认为与我没有找到的原因相同ClearSans-BoldItalic,但我不知道为什么它不在那里。

最后,我试着像这样“堆叠”两者

let bold = UIFont(name: "ClearSans-Bold", size: 20)
let italic = UIFont(name: "ClearSans-Italic", size: 20)

attributedCaption.addAttribute(NSFontAttributeName, value: bold!, range: (imageContainer.caption as NSString).rangeOfString(matchString))
attributedCaption.addAttribute(NSFontAttributeName, value: italic!, range: (imageContainer.caption as NSString).rangeOfString(matchString))
Run Code Online (Sandbox Code Playgroud)

但所有这些都是使用最后一个属性,这是我期望它做的。

是否有其他方法可以用来执行此操作,以便在标签的同一部分同时显示粗体和斜体?

编辑

我想包含项目中的字体,所以很明显我已经导入了它们。第二张图片是故事板上的字体列表。虽然它被掩盖了,但这个家庭实际上是Clear Sans

安装的字体 故事板选项

Rus*_*ian 3

确保粗斜体版本也添加到应用程序的 Info.plist 下UIAppFonts(“应用程序提供的字体”)键下。