【问题标题】:Having trouble applying the "Rockwell" font to an attributed string将“Rockwell”字体应用于属性字符串时遇到问题
【发布时间】:2020-05-20 02:17:40
【问题描述】:

我正在尝试创建一个可以根据需要应用于几个不同按钮标题的属性。我需要属性来应用“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 不接受。

【问题讨论】:

    标签: swift xcode fonts nsattributedstring xcode11


    【解决方案1】:

    你只需要使用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]
    

    【讨论】:

    • 我对 Xcode 还很陌生,所以你能告诉我它在属性字符串的上下文中是如何工作的吗?我是否可以像上面显示的那样实例化“rockwellRegular”,然后将其作为“.font: UIFont.rockwellRegular(ofSize: 35)”传递到我提供的代码的第二行?或者还有什么我需要做的吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2017-02-09
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    相关资源
    最近更新 更多