У меня есть метод, который я хочу использовать для изменения цвета последних 6 символов текста UILabel
, который будет иметь дату в скобках, то есть (1999)
. Сначала я установил текст tableViewCell
, а затем получил свойство attributedText
, чтобы получить шрифт и размер текста UILabel
. Я не уверен, что я делаю неправильно, но сейчас вся строка желтая, а не только последние 6 символов текста ярлыка. Любые идеи почему?NSMutableAttributedString не может правильно установить атрибуты или addAttributes
tableViewCell.titleLabel.text = speech.title;
NSAttributedString *titleAttributedString = tableViewCell.titleLabel.attributedText;
tableViewCell.titleLabel.attributedText = [speech titleAttributedString:titleAttributedString size:tableCell.titleLabel.font.pointSize];
// Speech class instance method
- (NSAttributedString *)titleAttributedString:(NSAttributedString *)attributedString size:(CGFloat)size {
NSRange range = NSMakeRange(attributedString.length - 6, 6);
NSMutableAttributedString *titleString = [attributedString mutableCopy];
NSDictionary *titleAttributesDictionary = [attributedString attributesAtIndex:0 effectiveRange:&range];
NSDictionary *dateAttributesDictionary = @{
NSFontAttributeName : titleAttributesDictionary[NSFontAttributeName],
NSForegroundColorAttributeName : [UIColor yellowColor]
};
// Neither of these lines solves the problem
// Both titleStrings are yellow
[titleString setAttributes:dateAttributesDictionary range:range];
[titleString addAttributes:dateAttributesDictionary range:range];
[titleString setAttributes:dateAttributesDictionary range:range];
return titleString;
}
Все было! Благодаря!!! –