I want to show the english date styled. I made the following code to get the characters to "redesign":
- (NSMutableAttributedString *)attributedInfoString:(NSString *)string;
{
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:string];
UIFont *smallFont = [UIFont boldSystemFontOfSize:17.0f];
UIFont *boldFont = [UIFont fontWithName:@"HelveticaNeue-Bold" size:24.0f];
[attString beginEditing];
[attString addAttribute:NSFontAttributeName value:(smallFont) range:[string rangeOfString:@"th"]];
[attString addAttribute:NSFontAttributeName value:(smallFont) range:[string rangeOfString:@"th" options:NSBackwardsSearch]];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"1" range:[string rangeOfString:@"th"]];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"1" range:[string rangeOfString:@"th" options:NSBackwardsSearch]];
[attString addAttribute:NSFontAttributeName value:(boldFont) range:[string rangeOfString:@"the"]];
[attString addAttribute:NSFontAttributeName value:(boldFont) range:[string rangeOfString:@"the" options:NSBackwardsSearch]];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"0" range:[string rangeOfString:@"the"]];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"0" range:[string rangeOfString:@"the" options:NSBackwardsSearch]];
[attString addAttribute:NSFontAttributeName value:(smallFont) range:[string rangeOfString:@"st"]];
[attString addAttribute:NSFontAttributeName value:(smallFont) range:[string rangeOfString:@"st" options:NSBackwardsSearch]];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"1" range:[string rangeOfString:@"st"]];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"1" range:[string rangeOfString:@"st" options:NSBackwardsSearch]];
[attString addAttribute:NSFontAttributeName value:(boldFont) range:[string rangeOfString:@"August"]];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"0" range:[string rangeOfString:@"August"]];
...
[attString endEditing];
return attString;
}
The problem, I find only the first "hit" from the beginning or from the end. How can I arrange to search the whole string? Especially concerning the "th" because in the string is sometimes 5 or 6 times the word "the" which then stops the adding of the attributes.
I'm not sure of what you want to achieve. But this is what I usually use for adding attribute for a long string.
If you use that like:
sample output would be:
Hope this would help.. Cheers! :)