嗨以下是我需要使用UILabel
实现的视图。我听说过NSAttributedString
,但不知道如何将其用于动态文本加载。
这里整个文字字体是Roboto-Light。但是,我必须从前两位医生的API响应中替换文本'Andrew Murphy博士,John Smith',并从API获得“23位医生”的计数,以便相应地调整此标签。您可以看到的文本颜色取决于文本是常量还是动态。我不知道如何实现它。因此,一些代码片段真的很受欢迎。
谢谢!
答案 0 :(得分:5)
您可以将NSMutableAttributeString与addAttribute:value:range一起使用;
//Your entry string
NSString *myString = @"I have to replace text 'Dr Andrew Murphy, John Smith' ";
//Create mutable string from original one
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:myString];
//Fing range of the string you want to change colour
//If you need to change colour in more that one place just repeat it
NSRange range = [myString rangeOfString:@"John Smith"];
[attString addAttribute:NSForegroundColorAttributeName value:[UIColor yellowColor] range:range];
//Add it to the label - notice its not text property but it's attributeText
label.attributedText = attString;
希望这个帮助
答案 1 :(得分:2)
使用原始文本创建NSMutableAttributedString
。
然后找到您想要着色的字符串的范围。将该范围与NSMutableAttributedString setAttributes:range:
方法一起使用。
重复您想要着色的每一段文字。