2014-07-02 21 views
5

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

当然这是可能的,因为这看起来正是苹果公司使用提示实现的。注意地球仪与文字颜色完全相同,并且它与所有其他字符一起包含在字符串中。当然,这不是UIImage

screenshot

性格在不同的字体:
enter image description here

编辑:在链接的问题提供的解决方案不适合这个角色的工作,为变体字似乎是完全一样的原始 - 蓝色与阴影。

+0

我不全力以赴相信这个角色会出现在“不同的字体”一样。最有可能的是,它会以一个后备字体绘制(可能是人为粗体,对于第二个和第四个示例)。请务必尝试使用实际包含此字符的字体。 – usr2564301

回答

1

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

如果你真的想要一个字体呈现这个字符为简单的黑色轮廓,你可以打包Symbola的副本(可下载here)到你的应用程序。

或者,您可以制作一个位图图像,并用您想要的图标和use NSTextAttachment将其放入属性字符串中。苹果很有可能做的东西沿着这些路线,因为他们的许多技巧的包括绝对不是Unicode字符符号:

"Text smarter with iMessage apps: Access something fun, without leaving Messages. Tap [App Store icon], then swipe to choose an app. Get iMessage apps from the App Store.

相关问题