【问题标题】:Is it possible to use SF Symbols outside of UIImage?是否可以在 UIImage 之外使用 SF 符号?
【发布时间】:2020-02-08 23:15:22
【问题描述】:

我对如何在 iOS 项目的文本中使用 SF 符号感到困惑。我有一个使用 UIImage systemImageNamed: 的符号的 UIButton。我想在另一个视图中显示有关该按钮的消息和一些文本。我认为我应该能够使用该符号的 Unicode 引用,但它不会呈现。我的理解是这些符号在私人使用区域中,但我无法使用@"Press the \U0010057C button."之类的代码来渲染它们

我已尝试将 SFSymbolsFallback.ttf 字体文件导入到我的项目中。

我希望看到渲染的符号,但我得到一个 ?而是。

【问题讨论】:

    标签: ios unicode nsstring sf-symbols


    【解决方案1】:

    这对我有用:

    let imageAttachment = NSTextAttachment()
    imageAttachment.image = UIImage(systemName: "checkmark.circle")
    
    // If you want to enable Color in the SF Symbols.
    imageAttachment.image = UIImage(systemName: "checkmark.circle")?.withTintColor(.blue)
    
    let fullString = NSMutableAttributedString(string: "Press the ")
    fullString.append(NSAttributedString(attachment: imageAttachment))
    fullString.append(NSAttributedString(string: " button"))
    label.attributedText = fullString
    

    结果:

    【讨论】:

    • 我在想这样的东西应该可以工作,但是在 UIAlertController 中嵌入的 UITextField 中使用它不会呈现字符。
    • 啊。我发现它不会在警报的 UITextField 中呈现,但如果我添加 UILabel 就会呈现。
    • 我也许可以完成这项工作,但我仍然想了解如何在不使用UIImage 的情况下使用 SF Symbol 作为字体。如果不能在普通文本中使用这些代码点,为什么还要分配代码点,我对此感到困惑。
    【解决方案2】:

    我一直在努力解决如何使用 CoreText 呈现 API 来使用 SF 符号字形的相同问题。在 MacOS 上,“SF Pro Text”字体中有 7500 多个字形,包括 SF Symbol 字形。在 iOS 上,系统字体只有约 2800 个字形,似乎不包括新的 SF Symbol 字形。除了在项目本身中包含字体(我相信这违反了 Apple 的许可)之外,我还没有找到一种方法来使用它们的 Unicode 字符值来呈现这些字形。

    【讨论】:

      猜你喜欢
      • 2020-10-25
      • 2021-12-24
      • 2020-07-09
      • 2019-06-21
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多