gpt4 book ai didi

ios - 让我的字体作为 "fall-back"工作而不调用它

转载 作者:行者123 更新时间:2023-12-01 16:09:15 27 4
gpt4 key购买 nike

我正在处理汉字。我的某些字符不存在于 Unicode 中。我正在使用 PUA .ttf 来支持我的非通用字符。

当我打电话

UIFont fontWithName:@"BabelStoneHanPUA"

一切都很好,我得到了漂亮漂亮的角色 [准确地说是第二个]。

enter image description here

当我不调用任何东西时,我只会得到一个:

(阅读:丑陋的大问号)。

enter image description here

虽然 UIFont fontWithName:@"BabelStoneHanPUA" 似乎没有搞砸任何事情,但我真的很喜欢我已经包含的可用字体作为“后备”或工作无需调用它。

有没有办法让我的 PUA 字体正常工作而无需将其特别设置为 字体?

最佳答案

  1. 在使用字体之前,调用此方法添加回退。

    func addFallbackToFont(font: UIFont, fallbackFontName: String) -> UIFont {
    let originalDescriptor = font.fontDescriptor

    let fallbackDescriptor = originalDescriptor.addingAttributes([.name: fallbackFontName])
    let repairedDescriptor = originalDescriptor.addingAttributes([.cascadeList: [fallbackDescriptor]])

    return UIFont(descriptor: repairedDescriptor, size: 0.0)
    }
  2. 如果你的字符已经存在于原始字体中,添加回退后调用此方法删除这些字符。

    func removeCharacters(characterString: String, font: UIFont) -> UIFont {
    let originalDescriptor = font.fontDescriptor

    var characterSet = (originalDescriptor.object(forKey: .characterSet) as! NSCharacterSet).mutableCopy() as! CharacterSet
    characterSet.remove(charactersIn: characterString)
    let removedDescriptor = originalDescriptor.addingAttributes([.characterSet: characterSet])

    return UIFont(descriptor: removedDescriptor, size: 0.0)
    }

关于ios - 让我的字体作为 "fall-back"工作而不调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34837737/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com