0

У меня возникают проблемы с сохранением атрибута NSMutableString. У меня есть UITableView, у каждого из UITableViewCell есть атрибутный текст. Установка атрибутного текста не проблема, но после выбора атрибуты UITableViewCell теряются. Это мой код в cellForRowAtIndexPath, который устанавливает атрибут:NSMutableAttributedString UILabel не сохраняет свои атрибуты при выборе

NSMutableAttributedString *changesStyleString_h = [[NSMutableAttributedString alloc] initWithString:@"Attributes change!" attributes:@{NSFontAttributeName: [UIFont boldSystemFontOfSize:20], NSForegroundColorAttributeName:[UIColor yellowColor]}]; 

[changesStyleString_h addAttributes:@{ NSUnderlineStyleAttributeName:@(1)} range:NSMakeRange(11, 6)]; 
cell.mainLabel.attributedText = changesStyleString 

может я указать, что mainLabel также UILabel, нет настройки там. Любая помощь в правильном направлении будет принята с благодарностью!

ответ

1

Я обнаружил, что мне нужно установить атрибуты в строке ENTIRE, или это будет делать фанки.

NSString* string = @"1 - some string" 
NSMutableAttributedString* string = [[NSMutableAttributedString alloc] initWithString:string]; 
[string setAttributes:@{NSForegroundColorAttributeName: accent, NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Bold" size:13.f]} range:NSMakeRange(0, 1)]; 

Это вызовет странное поведение при подсветке ячейки.

Однако, когда я сделал это:

[string setAttributes:@{NSForegroundColorAttributeName: [UIColor blackColor]} range:NSMakeRange(1, [labelTwo length] - 1)]; 

Все, казалось бы работать, как ожидалось.

Надеюсь, что это поможет!

Смежные вопросы