此bounty已结束。回答此问题可获得+50声望奖励。奖励宽限期将在11小时后结束。Nathanael希望引起更多人关注此问题。
我尝试在NSAttributedString w/ UIFontDescriptor上使用Avenir Next。它是一种内置的iOS字体。它可以在我的SwiftUI组件中工作,但如果我尝试创建自定义UIFontDescriptor,它找不到字体并默认为SFUI。为什么会出现这种情况?如何修复?
// descriptor shows font as SFUI
let boldDescriptor = UIFontDescriptor(fontAttributes: [
UIFontDescriptor.AttributeName.family: "Avenir Next",
UIFontDescriptor.AttributeName.traits: [
UIFontDescriptor.TraitKey.weight: UIFont.Weight.bold
]
])
1条答案
按热度按时间hi3rlvi21#
我不知道,你是如何使用这个描述符的方法.
Avenir Next是一种内置iOS字体,但并非所有设备都提供该字体。请确保在测试设备上安装了该字体。
通过使用
UIFont.fontNames(forFamilyName: "Avenir Next")
方法获取Avenir Next系列的可用字体名称列表,检查font是否可用。我还为
boldDescriptor
方法创建了一个新项目&它在我的情况下工作得很好。使用这个项目Demo Project for UIFontDescriptor - GitHub &让我知道如果这个例子不适合你。
输出:
Output Screenshot
此外,您还可以将字体从系统导入到项目中。
还请检查以下原因:
iOS 13
或更高版本来测试字体。Note on official website