我已经尝试创建一个带有下标字符的 NSString 一段时间了,但没有成功。在 iOS 中是否可以做到这一点?
我需要一种方法将字符串中的字符更改为下标或上标,但我无法为此使用 Unicode,因为 Unicode 不包含所有字母。
我的猜测可能是使用 HTML 标签<sub>
and <sup>
但我还没有找到一种方法将所述 HTML 标签转换为 NSString。
我无法让 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];
This gives you: ![enter image description here](https://i.stack.imgur.com/avF2H.png)
通过 label.attributedText 将属性字符串分配给标签是 6.0 中的新功能,但属性字符串的设置方式可能适用于早期版本的 iOS。
向 kCTSuperscriptAttributeName 发送负值会得到一个下标。
不要忘记添加 CoreText 框架。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)