我需要将以下字符‡, †, *
作为上标附加到NSString
in iOS
。需要你的帮助。我使用以下http://en.wikipedia.org/wiki/General_Punctuation_(Unicode_block)链接,但它们附加到NSString
,但我希望它们作为上标
问问题
4196 次
4 回答
11
尝试使用这个。你需要 #import <CoreText/CTStringAttributes.h>
。此代码仅适用于 iOS6 或更高版本。
UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, 200, 40)];
NSString *infoString=@"X2 and H20 A‡ B† C*";
NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:infoString];
[attString addAttribute:(NSString *)kCTSuperscriptAttributeName value:@1 range:NSMakeRange(1, 1)];
[attString addAttribute:(NSString *)kCTSuperscriptAttributeName value:@-1 range:NSMakeRange(8, 1)];
[attString addAttribute:(NSString *)kCTSuperscriptAttributeName value:@1 range:NSMakeRange(12, 1)];
[attString addAttribute:(NSString *)kCTSuperscriptAttributeName value:@1 range:NSMakeRange(15, 1)];
[attString addAttribute:(NSString *)kCTSuperscriptAttributeName value:@1 range:NSMakeRange(18, 1)];
lbl.attributedText = attString;
[self.view addSubview:lbl];
输出
我希望这能帮到您
于 2013-05-23T07:32:35.903 回答
2
NSString
不允许您格式化文本的特定部分。如果您打算在 、 或 中显示您的文本UILabel
(UITextField
并且UITextView
您的应用程序不必在 iOS 6 以下的任何设备上运行),您可以使用NSAttributedString
并应用kCTSuperscriptAttributeName
具有值的属性@1
。如果您使用的是UIWebView
,请使用 HTML 的<sup>
元素。
于 2013-05-23T07:17:53.937 回答
0
这就是您可以实现的方法:
NSString *string = @"abcdefghi";
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];
NSInteger num1 = 1;
CFNumberRef num2 = CFNumberCreate(NULL, kCFNumberNSIntegerType, &num1);
[attrString addAttribute:(id)kCTSuperscriptAttributeName value:(id)CFBridgingRelease(num2) range:NSMakeRange(6, 3)];
self.label.attributedText = attrString;
,其中 label 是已添加到 UI 的 UILabel 属性。
确保首先添加 CoreText 框架,还要在 .m 文件的顶部添加这一行。
希望它能以某种方式帮助你
于 2013-05-23T07:31:10.097 回答
0
迅速
步骤1。
import CoreText
第2步。
let range1 = NSMakeRange(1, 1)
let range2 = NSMakeRange(5, 1)
let mutableStr : NSMutableAttributedString = NSMutableAttributedString(string: "h20 x2")
mutableStr.addAttribute(kCTSuperscriptAttributeName as String, value:-1, range: range1)
mutableStr.addAttribute(kCTSuperscriptAttributeName as String, value:1, range: range2)
self.lbl.attributedText = mutableStr
输出:
于 2017-03-29T10:26:05.567 回答