NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:timeString];
UIFont *font = [UIFont fontWithName:self.txtFieldForEndTime.font.familyName size:self.txtFieldForEndTime.font.pointSize / 2];
NSDictionary *attrs = @{
NSFontAttributeName:font,
(__bridge NSString *) kCTSuperscriptAttributeName:[string substringFromIndex:string.length - 2]
};
[attString setAttributes:attrs range:[string rangeOfString:@"PM"]];
上面的代码试图超级编写最后两个AM / PM字符。
但是应用程序崩溃了 - [__ NSCFString _getValue:forType:]:发送到实例的无法识别的选择器。
请告诉我这段代码有什么问题。如果您的工作代码上标了NSString的一部分,请告诉我。
答案 0 :(得分:1)
您可以通过缩小字体的磅值来伪造上标,并使用NSBaselineOffsetAttributeName
属性在基线上向上或向下移动文本。