【问题标题】:How to put a custom emoji in a SwiftUI app?如何在 SwiftUI 应用程序中放置自定义表情符号?
【发布时间】:2021-07-06 03:22:51
【问题描述】:

所以我下载了 zip:https://github.com/hfg-gmuend/openmoji,打开它,打开字体文件夹,然后将 OpenMoji-Color.ttf 文件拖到我的 Xcode 项目中,但后来我意识到它并不是真正的“字体”,它可以修改现有的文本,那么我该如何将表情符号放在字符串、图像或类似的东西中?

通常,我会这样做:

Text("????")
    .font(Font.custom("OpenMoji-Color", size: 20))

或者,我希望做类似的事情:

Image("????") //somehow modify it to be in the correct OpenMoji style

有人知道怎么做吗?

【问题讨论】:

  • 你应该使用真实的字体名称而不是自带的字体文件名
  • @swiftPunk 现在,我使用的是“NotoColorEmoji”,而不是“.ttfFileHere”——我也只是想修改从“编辑”>“表情符号和符号”>“随机选择”插入的表情符号一,但它没有修改文本,我也不知道如何将表情符号放入图像中
  • documentation 对 NotoColorEmoji 的描述如下:这种字体格式在 Android 和 Linux 上受支持,但在 macOS 或 Windows 上不支持。 虽然不支持明确地说出来,它可能也不会在iOS上运行。
  • @Andrew 谢谢,我想你可能是对的——我改变了我的问题,所以它更笼统。现在我正在尝试以相同的方式使用 OpenMoji-Color 表情符号,但它仍然无法正常工作......任何帮助将不胜感激:-)
  • 检查 Mac 是否可以使用该字体的最简单方法是尝试将字体安装到 FontBook。如果它将安装在那里,那么您可能可以使用它。当我尝试安装 NotoColorEmoji 时,它抱怨说无法安装。 OpenMoji-Color可能是一样的

标签: swift fonts swiftui emoji google-noto


【解决方案1】:

我认为最安全的选择是加载您要用作图像的特定图像。在 OpenMoji .zip 文件中,所有表情符号的 .png 文件都包含在文件“color”中。您可以将它们从那里拖到您的 Xcode 应用程序包 Assets 文件夹中。

之后,您可以通过引用图像名称(在本例中为 unicode)直接加载它们。

struct ContentView: View {
    var body: some View {
        Image("1F440")
    }
}

或者,如果您有多个图像,您可以创建一个数组来保存所有图像并从那里引用它们。

struct ContentView: View {

    @State private var mojis = ["1F440", "1F1EA-1F1FA"]

    var body: some View {
        Image(mojis[1])
    }
 }

【讨论】:

  • 除非您计划在运行时更改数组中包含的值,否则您不需要 ContentView 中的 @State。
猜你喜欢
  • 2012-08-30
  • 2020-02-28
  • 2021-08-09
  • 2020-03-20
  • 1970-01-01
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
相关资源
最近更新 更多