【问题标题】:Parse unicode character from server, iOS Swift从服务器解析 unicode 字符,iOS Swift
【发布时间】:2020-02-22 01:47:50
【问题描述】:

我使用一组来自this website 的付费线性图标。

太棒了!尤其是在 iOS 中,我将.ttf 文件放在我的项目包中,加载字体并在标签和按钮中使用它。我什至写了一个article about how I do this

当我想根据某个服务器值动态更改标签时,我的问题就出现了。我最初的直觉是将 unicode 值作为文本保存在服务器上。我只需保存 ed02 之类的值,当我将其拉入我的应用程序时,我会将其添加到,比如说,这样的标签。

let label = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
label.font = IconUltimate().icoUltimateFont(18)
let valueFromServer = "ed02"
label.text = "\u{\(valueFromServer)}"

问题在于:

label.text = "\u{\(valueFromServer)}"

无效。我究竟做错了什么?有没有办法将服务器的 unicode 值注入我的 UI?我现在的解决方案是使用如下 switch 语句从服务器映射 unicode 值:

    public func unicodeMapper(rawUnicode: String) -> String {
        switch rawUnicode {
        case "ecf5":
            let thumbs_up = "\u{ecf5}"
            return thumbs_up
        default:
            return ""
        }
    }

然后这样称呼它:

let valueFromServer = "ed02"
label.text = unicodeMapper(rawUnicode: valueFromServer)

任何人有任何建议,所以我不必使用 switch 语句,我可以从服务器注入值?

谢谢

【问题讨论】:

标签: ios swift unicode glyphicons


【解决方案1】:

像这样:

let code = "ecf5" // or whatever you got from the server
let codeint = UInt32(code, radix: 16)!
let c = UnicodeScalar(codeint)!
label.text = String(c)

【讨论】:

  • 当然,在现实生活中,你不应该只是随便使用感叹号。 :)
  • 这对您的目的有用吗?我无法真正测试,因为您正在映射到 Unicode 频谱的不确定区域;在你所在的地方我没有字形。
猜你喜欢
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
  • 2017-03-14
  • 2011-07-16
相关资源
最近更新 更多