2015-09-07 1 views
2

Если вы хотите использовать присланную строку для форматирования строки так, чтобы первое слово имело другой стиль (например, шрифт), чем второе слово. Поэтому я думал, что могу использовать NSMutableAttributedString. Теперь у меня есть UIBarButtonItem, но здесь вы можете установить заголовок и текстовые атрибуты для заголовка.Использование нескольких стилей для строки в заголовке UIBarButtonItem

Я видел implementation, где NSDictionary используется, чтобы иметь несколько атрибутов. Недостатком этого является то, что вы можете иметь только форматирование для всей строки. Мне нужно это для части строки.

Возможно ли иметь несколько стилей для одной и той же строки заголовка в UIBarButtonItem?

+0

ваш вопрос в порядке один –

ответ

3

Вы можете инициализировать в UIBarButtonItem с обычаем Посмотреть. Подготовьте свою атрибутированную строку, создайте UILabel, установите ее attributedText на подготовленную и затем запустите кнопку с меткой.

Что-то вроде этого:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 24)]; 

NSAttributedString *strt = [[NSAttributedString alloc] initWithString:@"text" 
    attributes:@{ 
       NSForegroundColorAttributeName : [UIColor redColor] 
       }]; 
label.attributedText = strt; 

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:label]; 
1

вы можете использовать как

NSMutableAttributedString *;label_text = 
[[NSMutableAttributedString alloc]initWithAttributedString: yourlabelel.attributedText]; 
[label_text addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,1)]; 
[label_text addAttribute:NSForegroundColorAttributeName value: [UIColor greenColor] range:NSMakeRange(1,2)]; 
[label_text addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(2,3)]; 

[yourlabelel setAttributedText: label_text]; 

наконец appened этот ярлык к вашему UIBarButtonItem

выбор -2

увидеть это link

+0

NSMakeRange (0,5) - длина строки/yourLabel.text –

+0

согласно предыдущему вопросу, который я создал ответ здесь –

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