创建unicode字符的ibinspect



我已经使用(> http://fontastic.me/)创建了一些图标字体,该网站为您提供.ttf文件。

您可以通过

使用它
myLable.text = "u{e002}" //
print("u{e002}")     //
print("u{1F496}")   //💖

这很好地工作,但我想直接使用故事板直接传递字符串。

然后,我开始使用Uilabel子类合作,并为Unicode String创建@Ibinsectable。但这不起作用。以下是ibinspect的代码。

@IBInspectable internal var myString: String? {
        didSet {
            text = "u{e002}"       //          this works
            text = "\u{(myString)}" //u{e002}    this not
        }

let myString = "e002"
print("\u{(myString)}")   //u{e002}

即使这也无法正常工作

print(myString)
text = String(UTF8String: myString!)

但这只会打印出文字,它应该像print("u{e002}")一样打印图标。如何解决这个问题,我缺少什么?

事先感谢您的任何帮助。

您需要使用NSSCANNER类,该类可帮助您将NSString转换为Unicode

on ibinspectable 仅通过不带有> u 使用NSSCANNER类将NSString转换为Unicode,您就可以用作Unicode cartare

喜欢如果您想使用 UE002 ,则仅设置 e002 to nssString

下面是您想要的示例,例如Uilabel的子类,并具有可见元素的属性。

class LabelSubClass: UILabel {
    @IBInspectable internal var myString: String? {
        didSet {
            let scanner: NSScanner = NSScanner(string: myString!)
            var code: UInt32 = 0
            scanner.scanHexInt(&code)
            let unicodeString: String = String(format:"%C", UInt16(code))
            print("unicodeString: (unicodeString)")
            text = unicodeString
        }
    }
}

请参阅此处如何将Unicode设置为可检查的元素
在这里,您可以看到以上代码的输出

最新更新