2013-05-28 3 views
1

유니 코드 개인 공간 문자를 사용하여 text 속성을 UILabel으로 설정하려고합니다. 이것은 RubyMotion을 사용하고 있습니다.RubyMotion을 통해 UILabel에서 유니 코드 문자 사용

내가 원하는 캐릭터는 Entypo 제품군의 일부이며 U+1F554 (🕔)입니다.

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

을 그리고는 pack 구문을 사용하여 유니 코드 문자 텍스트의 설정 :

나는 새로운 UILabel 만듭니다.

@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" 

을 사용할 수 없습니다.

UILabel에서 사용하기에 적합한 유니 코드 문자로 구성된 문자열을 만드는 올바른 방법은 무엇입니까?

+0

지원 요청을 제출하는 것이 최선의 방법이라고 생각합니다. 이것은 RubyMotion 버그처럼 들립니다. –

답변

0

여기에 그가 index.hex.chr(Encoding::UTF_8)

1

GantMan이 옳다 사용처럼 https://github.com/derailed/motion-awesome?source=c

이 보이는 FontAwesome

와 함께이 일을 사람의 전체 보석 솔루션입니다.

레이블의 텍스트를 '0x1f554'.hex.chr(Encoding::UTF_8)으로 설정하면 올바르게 작동합니다.