我已经尝试了一段时间来创建一个带有下标字符的 NSString 但没有成功。甚至可以在 iOS 中执行此操作吗?
我需要一种方法来将字符串中的字符更改为下标或上标,但我不能为此使用 Unicode,因为 Unicode 没有所有字母。
我的猜测可能是使用 HTML 标签 <sub>
和 <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];
这给你:
通过 label.attributedText 将属性字符串分配给标签是 6.0 的新功能,但属性字符串的设置方式可能适用于早期版本的 iOS。
向 kCTSuperscriptAttributeName 发送一个负值给你一个下标。
不要忘记添加 CoreText 框架。
关于iphone - 如何在 iOS 中创建不在 Unicode 中的下标字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5080175/