I have assigned a custom font of 'Helvetica' with size 14 already for the text in UILabel using Interface Builder.
I am using reusing the same label at multiple places, but at some place I have to display the text in bold.
Is there any way I can just specify to make the existing font bold instead of creating the whole UIFont again? This is what I do now:
myLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:14];
解决方案
UPDATE:
Starting with iOS 8, messing with font names is no longer needed. Instead see newer answers that use UIFontDescriptorSymbolicTraits: here and here.
myLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:14];
If you wanna set it programmatically,you must check bold type is support or not in iOS, normally Bold or Italic will have format FontName-Bold, FontName-Italic, FontName-BoldItalic.
Now, write a bold function
-(void)boldFontForLabel:(UILabel *)label{
UIFont *currentFont = label.font;
UIFont *newFont = [UIFont fontWithName:[NSString stringWithFormat:@"%@-Bold",currentFont.fontName] size:currentFont.pointSize];
label.font = newFont;
}
Then call it
[self boldFontForLabel:yourLabel];