Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS 8+;中显示这些unicode字符时使用的字体;_Ios_Swift_Xcode_Unicode_Fonts - Fatal编程技术网

在iOS 8+;中显示这些unicode字符时使用的字体;

在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

我使用系统中可用的Arial字体显示一些unicode字符,并且能够显示除以下属于箭头类别的符号外的大多数字符:

⟼, ⤎, ⤏

相应的Unicode是:\u{27FC}、\u{290E}、\u{290F}

我在UIButton上显示它们。知道什么字体支持iOS 8及以上版本的unicode字符吗

它显示问号,因为Arial不支持这些符号,下面是一个屏幕截图:


谢谢你的帮助。谢谢您的时间。

答案……恐怕没有

至少不是根据这个很黑的测试

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 RegularApple 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