2013-07-09 2 views
2

Моя цель - показать цента в виде верхнего надписей с небольшим шрифтом в синем цвете. Я делаю следующееset color for subscript, kCTForegroundColorAttributeName, ios

 self.superScript  = @"8899"; 
     NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:self.superScript]; 
     UIFont *font = [UIFont systemFontOfSize:18.0f]; 
     UIFont *smallFont = [UIFont systemFontOfSize:9.0f]; 

     [attString beginEditing]; 
     [attString addAttribute:NSFontAttributeName value:(font) range:NSMakeRange(0, self.superScript.length - 2)]; 
     [attString addAttribute:NSFontAttributeName value:(smallFont) range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)]; 
     [attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"2" range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)]; 
     [attString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)([[UIColor blueColor] CGColor]) range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)]; 
     [attString endEditing]; 
     self.amount.attributedText = attString; 

Однако то, что я получаю enter image description here и верхний индекс не синим.

Любые мысли об этом.

ответ

4

Это может быть неправильная ошибка имени атрибута, поскольку я подозреваю, что вы не делаете ничего явно CoreText до или после этого кода.

Для вашего приписываемой строки try using these attributes instead:

[attString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)]; 
3

В iOS7

[attString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)([[UIColor blueColor] CGColor]) range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)]; 

не работает. Заменить kCTForegroundColorAttributeName с

NSForegroundColorAttributeName 

и перейти в обычный объект UIColor для значения.

Он также будет работать в iOS 6, если вам необходимо поддерживать iOS 6 & 7.