【问题标题】:How to obtain plain 'globe' Unicode character如何获得普通的“地球”Unicode 字符
【发布时间】:2014-08-22 18:13:08
【问题描述】:

如果您在 NSString 中包含 Unicode 字符,其中很多字符将采用该文本的颜色设置 - 它们只是该字体的常规字形,因此它们会像任何其他字符一样显示。但是有一些 Unicode 字符是彩色的,例如GLOBE WITH MERIDIANS,它是带有阴影的蓝色渐变。但是我在其他地方看到过同样的字形,它是一个没有阴影的简单黑色轮廓,例如在 iOS 键盘中。我想使用那个字形,但没有装饰,也不必创建和使用图像。我想知道不同的字体是否会以不同的格式呈现它,虽然iOSFonts.com 确实显示了不同的样式(粗体、斜体),但它们都是蓝色的。是否有可能获得简单的普通版本?

这当然是可能的,因为这似乎正是 Apple 通过 Tip 实现的。请注意,地球的颜色与文本完全相同,并且与所有其他字符一起包含在字符串中。这肯定不是UIImage

不同字体的字符:

编辑:链接问题中提供的解决方案不适用于此字符,因为变体字符似乎与原始字符完全相同 - 蓝色带阴影。

【问题讨论】:

  • 我并不完全相信这个字符在“不同的字体”中看起来是一样的。最有可能的是,它使用后备字体绘制(对于第二个和第四个示例,可能是人工加粗的)。确保尝试使用实际包含此字符的字体。

标签: ios objective-c unicode nsstring nsattributedstring


【解决方案1】:

不幸的是,iOS 没有可以使用的单色地球符号;唯一包含 U+1F310 GLOBE WITH MERIDIANS 的内置字体是 Apple Color Emoji。

如果您确实想要一种将该字符呈现为简单黑色轮廓的字体,您可以将 Symbola 的副本(可下载 here)打包到您的应用中。

或者,您可以使用您想要的图标和use NSTextAttachment 将其放入属性字符串中。 Apple 可能会按照这些思路做一些事情,因为他们的许多提示都包含绝对不是 Unicode 字符的符号:

【讨论】:

    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 2011-01-01
    • 2016-06-18
    • 2021-09-21
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多