查找多行标签的最后一行并更改颜色

时间:2018-04-02 12:42:19

标签: ios objective-c uilabel

我正在使用不同颜色的多行文本。以下代码更改第一行颜色但是想要更改最后一行颜色。

NSRange rangeOfNewLine = [label.text rangeOfString:@"\n"];
NSRange newRange = NSMakeRange(0, rangeOfNewLine.location);

[text addAttribute:NSForegroundColorAttributeName
       value:[UIColor redColor]
       range:newRange];    

2 个答案:

答案 0 :(得分:0)

NSArray* lines = [label.text componentsSeparatedByString:@"\n"];
NSString* lastLine = lines.lastObject;
NSRange rangeOfLastLine = [label.text rangeOfString:lastLine];

[text addAttribute:NSForegroundColorAttributeName
             value:[UIColor redColor]
             range:rangeOfLastLine];    

答案 1 :(得分:-1)

//NSString *myString = @"I have to replace text 'Dr Andrew Murphy, John Smith' ";

NSString *myString = @"Not a member?signin";

 //Create mutable string from original one 
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:myString]; 

//Fing range of the string you want to change colour
attributeText _label.attributedText = attString;
 //If you need to change colour in more that one place just repeat it 

NSRange range = [myString rangeOfString:@"signin"]; 
[attString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:(63/255.0) green:(163/255.0) blue:(158/255.0) alpha:1.0] range:range];

    //Add it to the label - notice its not text property but it's 
attributeText _label.attributedText = attString;