2012-05-09 41 views
1

我在xcode中的應用程序具有一些產品數據的表格視圖。我的一個產品的名稱中有一個上標e。我怎麼可以使用標字符串中的字符,如:文字ê字符串中的上標字符IOS

我可以得到它與數字工作:文字\ u2070 - >文本或文字\ u2071 - >文本。但如何與其他角色做到這一點?

thx!

+1

也許這將幫助:http://stackoverflow.com/questions/5080175/how-to-create-subscript-characters-thats-not-in-unicode-in-ios – Jason

+1

使用鏈接@JasonWang給了你。我們遇到了完全相同的問題,並且我們喜歡它在那裏使用webview和html。沒有其他解決方案 – BBog

+0

它有一些很好的信息,但我不能在桌面視圖中使用像webview的東西。是唯一的方法來做到這一點與圖像? – Daniel

回答

2

tl; dr:NSString不支持super/sub腳本的概念。這或多或少是一種UI格式問題。

一個可能的解決方案是將代碼中的UILabels添加到代碼中而不是接口構建器中。您可以添加更小字體的第二個UILabel。

+0

Thx的信息!字體較小的UILabel看起來是最好的方法。 – Daniel

2

添加CoreText框架,導入CoreText.h,並使用UIlabel.attributedText - 它完全支持NSAttributedString。已經在SO上反覆提問和回答。

1

對於SubScript,使用kCTSuperscriptAttributeName的值作爲@ -1。

作爲每文檔

@discussion值必須是CFNumberRef。缺省值爲int值0.如果指定字體支持 ,則值爲1將啓用上標 ,值爲-1將啓用下標。

extern const CFStringRef kCTSuperscriptAttributeName CT_AVAILABLE(10_5,3_2);

Example- [lblHeader setText:@「Headers [Alpha1 – text」]; 

     NSMutableAttributedString *headerSubscript = [[NSMutableAttributedString alloc]initWithAttributedString: lblHeader.attributedText]; 

     [headerSubscript addAttribute:(NSString *)kCTSuperscriptAttributeName value:@-1 range:NSMakeRange(14,1)];  

     [lblHeader setAttributedText:headerSubscript];