如果想要使用属性字符串来格式化字符串,使第一个单词具有另一个样式(例如字体)而不是第二个单词。因此我认为我可以使用NSMutableAttributedString
。现在我有一个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 :(得分: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];
最后将此标签贴在您的UIBarButtonItem
选择-2
请参阅此link