2012-05-09 2 views
1

Мое приложение в xcode имеет табличное представление с некоторыми данными о товаре. Один из моих продуктов имеет надпись e в своем названии. Как я могу использовать надстрочный символы в строке как: текст енадстрочные символы в строке IOS

я могу заставить его работать с числами: Текст \ u2070 -> Текст или текст \ u2071 -> текст . Но как это сделать с другими персонажами?

thx!

+1

Может быть, это поможет: http://stackoverflow.com/questions/5080175/how-to-create-subscript-characters-thats-not-in-unicode-in-ios – Jason

+1

Используйте ссылку @JasonWang дал вам. Мы сталкиваемся с одной и той же проблемой, и нам понравилось, что она говорила там, используя webview и html. Других решений не было. – BBog

+0

У него есть хорошая информация, но я не могу использовать что-то вроде webview в виде таблицы. Это единственный способ сделать это с помощью изображения? – Daniel

ответ

2

tl; dr: NSString не поддерживает концепцию супер/подзаголовка. Это более или менее проблема форматирования пользовательского интерфейса.

Одним из возможных решений является динамическое добавление UILabels в код вместо конструктора интерфейса. Вы можете добавить второй UILabel с меньшим размером шрифта.

+0

Thx для информации! UILabel с меньшим шрифтом Похоже, это лучший подход. – Daniel

2

Добавить Framework CoreText, импортировать CoreText.h и использовать UIlabel.attributedText - он имеет полную поддержку NSAttributedString. Спросил и много раз ответил на СО.

1

Для значения использования SubScript для kCTSuperscriptAttributeName как @ -1.

Согласно документу

@discussion Значение должно быть CFNumberRef. Значение по умолчанию - значение int 0. Если , поддерживаемый указанным шрифтом, значение 1 разрешает суперкопирование , а значение -1 позволяет подписывать подписку.

extern const CFStringRef kCTSuperscriptAttributeName CT_AVAILABLE (10_5, 3_2);

Example- [lblHeader setText:@“Headers [Alpha1 – text”]; 

     NSMutableAttributedString *headerSubscript = [[NSMutableAttributedString alloc]initWithAttributedString: lblHeader.attributedText]; 

     [headerSubscript addAttribute:(NSString *)kCTSuperscriptAttributeName value:@-1 range:NSMakeRange(14,1)];  

     [lblHeader setAttributedText:headerSubscript];