1

我正在尝试使用 Unicode 私有空格字符并将其设置textUILabel. 这是使用 RubyMotion。

我想要的角色是Entypo家族的一员,并且是U+1F554( 🕔)。

我创建一个新的UILabel

@lblIcon = UILabel.alloc.initWithFrame([[0,(self.view.frame.size.height/2) - 128],[self.view.frame.size.width,96]])

pack并使用语法将其文本设置为 Unicode 字符。

@lblIcon.text = [0x1f554].pack('U*')

然后我应用图标字体并将其添加到视图中:

ico_font = UIFont.fontWithName("Entypo", size:48)
@lblIcon.font = ico_font
self.view.addSubview @lblIcon

当我运行rake并尝试启动应用程序时,我收到以下崩溃消息:

*** Terminating app due to uncaught exception 'RuntimeError', reason: 'ui_label.rb:16:in `font=:': NSInvalidArgumentException: NSConcreteMutableAttributedString addAttribute:value:range:: nil value (RuntimeError)

我也试过

@lblIcon.text = [0x1f554].pack('U*') + ""

@lblIcon.text = "\U1F554"

无济于事。

创建由适合在 a 中使用的 unicode 字符组成的字符串的正确方法是UILabel什么?

4

2 回答 2

1

甘特曼是对的。

将标签的文本设置为'0x1f554'.hex.chr(Encoding::UTF_8)应该可以。

于 2013-07-25T15:42:11.897 回答
0

这是某人使用 FontAwesome 执行此操作的完整 gem 解决方案

https://github.com/derailed/motion-awesome?source=c

看起来他用index.hex.chr(Encoding::UTF_8)

于 2013-07-08T20:59:23.627 回答