2013-06-07 2 views
-3

Je veux savoir comment changer la couleur de la sous-chaîne dans une chaîne. Ainsi, par exemple, j'ai la couleur noire d'origine après substring:Changer la couleur dans la chaîne

NSString *[email protected]"Frank Megan Timmy 
        Marcus Andrea Matt 
        Jamie Lauren Marcus"; 

Supposons que l'utilisateur a fait quelque chose et je voudrais faire Marcus Andrea Matt une couleur rouge (par exemple) dans la chaîne d'origine et gardez tout le reste pareil.

Quelqu'un peut-il me dire comment cela peut-il être fait?

+9

'NSAttributedString' – Mar0ux

+0

@ Mar0ux Merci pour la réponse! Pouvez-vous s'il vous plaît expliquer comment ou donner un exemple? Très appréciée! – Teddy13

+1

http://stackoverflow.com/q/3482346/1704346 –

Répondre

0

Utilisez NSMutableAttributedString pour cela. Modifier le type de original-NSMutableAttributedString et utiliser

[original addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:yourRange]; 
0

S'il vous plaît trouverez ci-dessous la solution:

NSString *[email protected]"Frank Megan Timmy 
        Marcus Andrea Matt 
        Jamie Lauren Marcus"; 
NSMutableAttributedString* attrStr = [NSMutableAttributedString attributedStringWithString:original]; 
/now we only change the color of "Frank" 
[attrStr setTextColor:[UIColor redColor] range:NSMakeRange(0,5)]; 
1
NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"Frank Megan Timmy Marcus Andrea Matt Jamie Lauren Marcus"]; 
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(0,18)]; 
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(18,18)]; 
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(36,20)]; 

UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 250, 80)]; 
[label setLineBreakMode:NSLineBreakByWordWrapping]; 
[label setNumberOfLines:0]; 
[label setAttributedText:string]; 

[self.view addSubview:label]; 
+0

Gardez à l'esprit que ce n'est que pour iOS 6 et versions ultérieures. –