Xri*_*eaz 13 iphone cocoa-touch objective-c nsstring ios
我已经尝试了一段时间来创建一个带有下标字符的NSString而没有成功.甚至可以在iOS中执行此操作吗?
我需要一种方法来改变一个字符串标或下标字符,我不能使用Unicode此为Unicode不具备所有的信件.
我的猜测可能是使用HTML标签<sub>
,<sup>
但我还没有找到将所述HTML标签转换为NSString的方法.
jay*_*355 17
我无法使NSSuperscriptAttributeName工作但是成功了以下内容:
UILabel *label = [[UILabel alloc] init];
NSString *string = @"abcdefghi";
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];
NSInteger num1 = 1;
CFNumberRef num2 = CFNumberCreate(NULL, kCFNumberNSIntegerType, &num1);
[attrString addAttribute:(id)kCTSuperscriptAttributeName value:(id)num2 range:NSMakeRange(4,2)];
label.attributedText = attrString;
[attrString release];
Run Code Online (Sandbox Code Playgroud)
这给你:
通过label.attributedText将属性String分配给标签是6.0的新功能,但设置属性字符串的方式可能适用于早期版本的iOS.
向kCTSuperscriptAttributeName发送负值会给您一个下标.
不要忘记添加CoreText框架.
Sev*_*yev 10
下标和上标不是人物特征.除了少数例外(例如²,³,ª),这就是常规字符的呈现方式 - 以较小的字体和常规字符的基线上/下.考虑到这一点,你不能拥有"带有下标字符的NSString",只不过你可以拥有一个带粗体或斜体字符的NSString.
因此,除非Unicode中已存在所需的下标字符,否则在字符串呈现时创建下标和上标,而不是在字符串创建上创建.这不是iOS的限制,这是现代计算机中字符串处理方式的限制.
你对那个NSString做了什么?你在UILabel上展示它吗?你是通过网络发送的吗?你把它渲染成HTML吗?需要注意的是<sub>
和<sup>
是HTML标签; 除非NSString被特别解释为HTML(例如,通过UIWebView),否则它们不会被解释为sup/superscript.
归档时间: |
|
查看次数: |
18367 次 |
最近记录: |