I have a string:
NSString *userInfo = @"James Johnson @james";
What i want to do is bold James Johnson
and keep @james
normal font.
So what I have tried is using NSAttributedString
but somewhere I'm doing something wrong in order to complete the process.
This is what I have tried:
NSString *user = @"James Johnson @james";
UIFont *fontLight = [UIFont fontWithName:@"HelveticaNeue-Light" size:14];
UIFont *fontBold = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:userInfo];
//TESTING WITH RANDOM PARTS OF THE STRIN
[string addAttribute:NSForegroundColorAttributeName value:fontLight range:NSMakeRange(0, 3)];
[string addAttribute:NSForegroundColorAttributeName value:fontBold range:NSMakeRange(3, 5)];
NSString *str = [string string];
cell.textLabel.text = str;
Is there a way I can make this work even if I'm on the wrong direction?
What's not working
For some reason, the characters from range 0 - 3 is not being a light font...instead the entire cell.textLabel.text
is bold somehow and is not font size 14 which i had specified in the UIFont.
Your last part of it is wrong. You must create your
NSAttributedString
and finally trash the formatting by usingAs
NSString
doesn't know anything about formatting you have to use theNSAttributedString
to assign it to the cell'stextLabel
:Make changes in you code as follows :
UILabel has a property attributedText. You should be assigning this property with your attributed string and not use text property.
You should set
attributedString
toattributed
textComment these lines
And write this