在iOS 8+;中显示这些unicode字符时使用的字体;
我使用系统中可用的Arial字体显示一些unicode字符,并且能够显示除以下属于箭头类别的符号外的大多数字符: ⟼, ⤎, ⤏ 相应的Unicode是:\u{27FC}、\u{290E}、\u{290F} 我在UIButton上显示它们。知道什么字体支持iOS 8及以上版本的unicode字符吗 它显示问号,因为Arial不支持这些符号,下面是一个屏幕截图:在iOS 8+;中显示这些unicode字符时使用的字体;,ios,swift,xcode,unicode,fonts,Ios,Swift,Xcode,Unicode,Fonts,我使用系统中可用的Arial字体显示一些unicode字符,并且能够显示除以下属于箭头类别的符号外的大多数字符: ⟼, ⤎, ⤏ 相应的Unicode是:\u{27FC}、\u{290E}、\u{290F} 我在UIButton上显示它们。知道什么字体支持iOS 8及以上版本的unicode字符吗 它显示问号,因为Arial不支持这些符号,下面是一个屏幕截图: 谢谢你的帮助。谢谢您的时间。答案……恐怕没有 至少不是根据这个很黑的测试 extension unichar { func i
谢谢你的帮助。谢谢您的时间。答案……恐怕没有 至少不是根据这个很黑的测试
extension unichar {
func isSupportedBy(fontName: String) -> Bool {
let characters = [self]
var glyphs: [CGGlyph] = []
let ctFont = CTFontCreateWithName(fontName as CFString, 15, nil)
return CTFontGetGlyphsForCharacters(ctFont, characters, &glyphs, 1)
}
}
UIFont.familyNames.map({
UIFont.fontNames(forFamilyName: $0)
}).joined().forEach({
for string in ["A", "\u{27FC}", "\u{290E}", "\u{290F}"].map({$0.utf16}){
if let char = string.first {
if char.isSupportedBy(fontName: $0) {
print("\($0) supports \(string)")
} else {
print("\($0) does not support \(string)")
}
} else {
print("invalid char \(string)")
}
}
})
编辑: 检查macOS中的字符输入窗口,这些特定字形似乎在STIXGeneral Regular和Apple Symbols字体中可用。也许你可以将其中一个作为自定义字体添加到你的iOS应用程序中
你可以检查他们的代码> Unicode < /Code >字符,我确信旧金山字体会起作用。perfectly@Adolfo当你说“我确定”时,你有多确定?该页面是一个表情符号表,与此问题无关。哇,感谢您提供的快速测试代码。也许我错了。但是这些Unicode是否在16位范围内,以检查utf16?好吧,一旦字符串转换为utf16,它们仍然可以正确打印,所以看起来很好。非常感谢@Ashley。我可以在Mac的path/System/Library/Fonts/中看到一个“Apple Symbols.ttc”字体。我现在会尝试使用它,看看它是否有效。只需将上面的字体安装到iOS应用程序中,就可以工作了,在代码中甚至没有实际使用该字体,但仍然使用Arial。我认为iOS会自动寻找退路。再次感谢@Ashley:)
Copperplate-Light supports A
Copperplate-Light does not support ⟼
Copperplate-Light does not support ⤎
Copperplate-Light does not support ⤏
etc