Вот что я сделал в iOS 6. Сначала добавьте платформы CoreText и QuartzCore.Затем импортируйте:
#import <QuartzCore/QuartzCore.h>
#import <CoreText/CTStringAttributes.h>
#import <CoreText/CoreText.h>
Я сделал небольшую функцию, которая вводит простую строку NSString и экспортирует строку NSMutableAttributedString с последним символом в верхнем индексе.Это можно изменить, чтобы разрешить установку верхнего или нижнего индекса, изменив значение kCTSuperscriptAttributeName на -1.Также вы можете добавить переменную, чтобы указать, где поместить верхний индекс в строку.Прямо сейчас это просто предполагает конец строки.
- (NSMutableAttributedString *)plainStringToAttributedUnits:(NSString *)string;
{
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:string];
UIFont *font = [UIFont systemFontOfSize:10.0f];
UIFont *smallFont = [UIFont systemFontOfSize:9.0f];
[attString beginEditing];
[attString addAttribute:NSFontAttributeName value:(font) range:NSMakeRange(0, string.length - 2)];
[attString addAttribute:NSFontAttributeName value:(smallFont) range:NSMakeRange(string.length - 1, 1)];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"1" range:NSMakeRange(string.length - 1, 1)];
[attString addAttribute:(NSString*)kCTForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0, string.length - 1)];
[attString endEditing];
return attString;
}
Теперь, когда я хочу использовать это, я могу сделать следующее, чтобы поместить его в UITextField:
NSString *qlwUnitsPlainText = @"m3";
self.quantityLoadWeightUnits_textField.attributedText = [self plainStringToAttributedUnits:qlwUnitsPlainText];
Я надеюсьэто помогает кому-то еще, примеров не так много!