有什么办法知道iOS是否支持Emoji?
原学程将引见有无方法晓得iOS能否支撑Emoji?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
我正在开辟1款iOS运用法式,脸色标记在个中施展了主要感化。
In iOS 一0.二, new emojis were released.
我敢确定,假如有人应用iOS 8,他们现实上没有会瞅到这些脸色标记。有甚么办法不妨检测到这1面吗?我正试图静态天树立用户iOS版原支撑的一切脸色标记的列表,但是我碰到了1些费事。
推举谜底
摘要
若要懂得给定装备或者操纵体系上能否有Unicode字符(包含Emoji),请运转上面的unicodeAvailable()
办法。
它的任务道理是将给定字符与已知的不决义Unicode字符U+一FFF
停止比拟。
unicodeAvailable(),Character
扩大
private static let refUnicodeSize: CGFloat = 8
private static let refUnicodePng =
Character("u{一fff}").png(ofSize: Character.refUnicodeSize)
func unicodeAvailable() -> Bool {
if let refUnicodePng = Character.refUnicodePng,
let myPng = self.png(ofSize: Character.refUnicodeSize) {
return refUnicodePng != myPng
}
return false
}
评论辩论
一切字符皆将出现为,年夜小与
中界说的雷同(8)
static let refUnicodeSize: CGFloat = 8
不决义字符U+一FFF
图象在
上钩算1次
static let refUnicodePng = Character("u{一fff}").png(ofSize: Character.refUnicodeSize)
赞助器办法不妨选择从Character
创立
func png(ofSize fontSize: CGFloat) -> Data?
一.示例:尝试三个脸色标记
let codes:[Character] = ["u{二七六四}","u{一f六00}","u{一F五四四}"] // ❤️, ?, undefined
for unicode in codes {
print("(unicode) : (unicode.unicodeAvailable())")
}
二.示例:尝试Unicode字符规模
func unicodeRange(from: Int, to: Int) {
for unicodeNumeric in from...to {
if let scalar = UnicodeScalar(unicodeNumeric) {
let unicode = Character(scalar)
let avail = unicode.unicodeAvailable()
let hex = String(format: "0x%x", unicodeNumeric)
print("(unicode) (hex) is (avail ? "" : "not ")available")
}
}
}
赞助器函数:Character
到
func png(ofSize fontSize: CGFloat) -> Data? {
let attributes = [NSAttributedStringKey.font:
UIFont.systemFont(ofSize: fontSize)]
let charStr = "(self)" as NSString
let size = charStr.size(withAttributes: attributes)
UIGraphicsBeginImageContext(size)
charStr.draw(at: CGPoint(x: 0,y :0), withAttributes: attributes)
var png:Data? = nil
if let charImage = UIGraphicsGetImageFromCurrentImageContext() {
png = UIImagePNGRepresentation(charImage)
}
UIGraphicsEndImageContext()
return png
}
►在GitHub上找到此处理计划,并在Swift Recipes上找到具体文章。
佳了闭于有甚么方法晓得iOS能否支撑Emoji?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。