我正在尝试使用Unicode私有空格字符并将其设置为text
的{{1}}属性。这是使用RubyMotion。
我想要的角色是Entypo家庭的一部分,并且是UILabel
(U+1F554
)。
我创建了一个新的🕔
:
UILabel
使用@lblIcon = UILabel.alloc.initWithFrame([[0,(self.view.frame.size.height/2) - 128],[self.view.frame.size.width,96]])
语法将其文本设置为Unicode字符。
pack
然后我应用图标字体并将其添加到视图中:
@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"
中使用的unicode字符组成的字符串的正确方法是什么?
答案 0 :(得分:1)
GantMan是对的。
将标签的文本设置为'0x1f554'.hex.chr(Encoding::UTF_8)
应该有效。
答案 1 :(得分:0)
这是使用FontAwesome
执行此操作的完整宝石解决方案https://github.com/derailed/motion-awesome?source=c
看起来他使用index.hex.chr(Encoding::UTF_8)