2013-12-26 3 views
0

У меня есть строка ... Share Pictures. Я хочу показать Share разным цветом. Я использовал NSMutableAttributedString, чтобы изменить цвет этой части строки. Но когда я я устанавливаю cell.textLabel.text, используя следующую строку, это не работает. Любой другой способ сделать это?Как установить многоцветный текст в виде таблицы в ios

Таким образом, это не сработает.

NSMutableAttributedString *string3 = [[NSMutableAttributedString alloc]initWithString:@"Share pictures "]; 
[string3 addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(0, 4)]; 
NSString *tempStr3 = @"with your friends."; 
NSString *finalString3 = [NSString stringWithFormat:@"%@%@" , string3, tempStr3]; 
[menuTextArray addObject:finalString3]; 

И в режиме просмотра данных в формате datasource.

cell.textLabel.text = [menuTextArray objectAtIndex:indexPath.row]; 
+0

Возможный дубликат: http://stackoverflow.com/questions/13579209/two-colors-for-uilabel-text – Mavericks

ответ

2

Вам нужно только добавить NSMutableAttributedString в свой menuTextArray:

NSMutableAttributedString *yourString = [[NSMutableAttributedString alloc]initWithString:@"Share pictures with your friends"]; 
[yourString addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(0, 4)]; 
[menuTextArray addObject:yourString]; 

затем установите attributedText

cell.textLabel.attributedText = [menuTextArray objectAtIndex:indexPath.row]; 
+0

Хорошо ..... но теперь я получаю excetion ...... Завершение приложения из-за неотображенного исключения «NSInvalidArgumentException», причина: '- [__ Атрибут NSCFString: atIndex: effectiveRange:]: нераспознанный селектор, отправленный экземпляру 0x9daa5f0' – icodes

+0

Как вы добавляете объекты в 'menuTextArray'? Убедитесь, что вы добавили объект типа NSMutableAttributedString' в свой массив 'menuTextArray', как я упоминал в коде. –

+0

Я конвертирую одну строку и добавляю в массив, а затем конвертирую другую и снова добавляю в массив .... [menuTextArray addObject: finalString3]; – icodes

1

Использование attributedText вместо text

cell.textLabel.attributedText = [menuTextArray objectAtIndex:indexPath.row]; 
0

Надежда этот код поможет вам .....

NSMutableAttributedString *string3 = [[NSMutableAttributedString alloc]initWithString:@"Share pictures with your friends"]; 
    [string3 addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(0, 5)]; 
    [menuTextArray addObject:string3]; 
    [cell.textLabel setAttributedText:string3]; 
Смежные вопросы