How do I set bold and italic on UILabel of iPhone/iPad? How do I set bold and italic on UILabel of iPhone/iPad? ios ios

How do I set bold and italic on UILabel of iPhone/iPad?


Don't try to play with the font names. Using the font descriptor you need no names:

UILabel * label = [[UILabel alloc] init]; // use your label object instead of thisUIFontDescriptor * fontD = [label.font.fontDescriptor            fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold                            | UIFontDescriptorTraitItalic];label.font = [UIFont fontWithDescriptor:fontD size:0];

size:0 means 'keep the size as is'

With Swift try the following extension:

extension UIFont {    func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont {        let descriptor = self.fontDescriptor()            .fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits(traits))        return UIFont(descriptor: descriptor, size: 0)    }    func boldItalic() -> UIFont {        return withTraits(.TraitBold, .TraitItalic)    }}

Then you may use it this way:

myLabel.font = myLabel.font.boldItalic()

or even add additional traits like Condensed:

myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)

Update for Swift 4:

extension UIFont {  var bold: UIFont {    return with(traits: .traitBold)  } // bold  var italic: UIFont {    return with(traits: .traitItalic)  } // italic  var boldItalic: UIFont {    return with(traits: [.traitBold, .traitItalic])  } // boldItalic  func with(traits: UIFontDescriptorSymbolicTraits) -> UIFont {    guard let descriptor = self.fontDescriptor.withSymbolicTraits(traits) else {      return self    } // guard    return UIFont(descriptor: descriptor, size: 0)  } // with(traits:)} // extension

Use it as follows:

myLabel.font = myLabel.font.bold

or

myLabel.font = myLabel.font.italic

or

myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])

Update for Swift 5

extension UIFont {    var bold: UIFont {        return with(.traitBold)    }    var italic: UIFont {        return with(.traitItalic)    }    var boldItalic: UIFont {        return with([.traitBold, .traitItalic])    }    func with(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {        guard let descriptor = self.fontDescriptor.withSymbolicTraits(UIFontDescriptor.SymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits)) else {            return self        }        return UIFont(descriptor: descriptor, size: 0)    }    func without(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {        guard let descriptor = self.fontDescriptor.withSymbolicTraits(self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptor.SymbolicTraits(traits))) else {            return self        }        return UIFont(descriptor: descriptor, size: 0)    }}


sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];

There is a list of font names that you can set in place of 'fontWithName' attribute.The link is here


@Edinator have a look on this..

myLabel.font = [UIFont boldSystemFontOfSize:16.0f]myLabel.font = [UIFont italicSystemFontOfSize:16.0f];

use any one of the above at a time you want