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?
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 using
NSString *str = [string string];
As NSString
doesn't know anything about formatting you have to use the NSAttributedString
to assign it to the cell's textLabel
:
cell.textLabel.attributedText = string;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With