将 "Rockwell" 字体应用于属性字符串时遇到问题

Having trouble applying the "Rockwell" font to an attributed string

我正在尝试创建一个属性,我可以根据需要将其应用于几个不同的按钮标题。我需要属性来应用 "Rockwell" 类型的 35 号字体,我自己的自定义颜色 "specialYellow",带有下划线。我在尝试让它应用 "Rockwell" 字体时遇到了麻烦,因为它显然不是 UIFont 颜色。

let underlineAttribute:[NSAttributedString.Key: Any] = [
    .font: UIFont.systemFont(ofSize: 35),
    .foregroundColor: ColorManager.specialYellow,
    .underlineStyle: NSUnderlineStyle.single.rawValue]

我认为我需要将 "UIFont.systemFont" 更改为 "UIFont.Rockwell" 之类的其他内容,但 swift 不接受。

你只需要使用 UIFont(name: size:) 初始化器

init?(name fontName: String, size fontSize: CGFloat)

但您需要将字体粗细与其名称一起传递:

let rockwellRegular = UIFont(name: "Rockwell-Regular", size: 35)

你的情况:

let underlineAttribute: [NSAttributedString.Key: Any] = [
    .font: UIFont(name: "Rockwell-Regular", size: 35),
    .foregroundColor: ColorManager.specialYellow,
    .underlineStyle: NSUnderlineStyle.single.rawValue]