ios - 如何确定 iOS 设备是否可以呈现特定的表情符号字符?

标签 ios fonts core-text emoji

随着 iOS 9.1 的发布,我们获得了很多很酷的新表情符号,例如 taco (🌮)!我正在开发一个应用程序,我想在支持它们的设备上显示新的表情符号字符,但在不支持它们的设备上将它们隐藏起来。有没有办法确定给定的表情符号字符(包含在 NSString 中)是否可以在运行应用程序的设备上呈现?

在对 SO 进行大量挖掘和试验之后,我想出了一个解决方案,我将在下面作为答案发布,但如果有更好的方法,请告诉我。

最佳答案

作为对上述 Swift 问题的回应,这里有一个 Swift 版本主要基于这个问题的答案: Get surrogate pairs from an emoji

func isEmojiSupported(emoji: String) -> Bool {
  let uniChars = Array(emoji.utf16)
  let font = CTFontCreateWithName("AppleColorEmoji", 0.0, nil)
  var glyphs: [CGGlyph] = [0, 0]
  return CTFontGetGlyphsForCharacters(font, uniChars, &glyphs, uniChars.count)
}

关于ios - 如何确定 iOS 设备是否可以呈现特定的表情符号字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33701590/

相关文章:

ios - SWIFT 的核心数据 : How to delete object from Relationship entity?

php - 如何保护网页字体?

r - ggplot2::geom_text 字体作为图形的其余部分

cocoa - 如何使用 Core Text 从文件加载字体 (TTF)?

iphone - 我可以在 iOS 的 Core Text 中使用 NSAttributedString 吗?

ios - AFNetworking SSL 请求

objective-c - iphone uipickerview : image and text

ios - Swift - UITapGestureRecognizer UIPageViewController

iphone - iOS 中的字体大小问题

objective-c - CoreText CopyFontsForRequest 收到 mig IPC 错误