[objective-c] ¿Cómo configuro negrita y cursiva en UILabel de iPhone / iPad?


Answers

No intentes jugar con los nombres de las fuentes. Usando el descriptor de fuente no necesitas nombres:

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

size:0 significa 'mantener el tamaño como está'

Con Swift prueba la siguiente extensión:

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)
    }

}

Entonces puedes usarlo de esta manera:

myLabel.font = myLabel.font.boldItalic()

o incluso agregar rasgos adicionales como condensado:

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

Actualización para 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

Úselo de la siguiente manera:

myLabel.font = myLabel.font.bold

o

myLabel.font = myLabel.font.italic

o

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

Question

¿Cómo configuro negrita y cursiva en UILabel de iPhone / iPad? Busqué en el foro pero nada me ayudó. ¿Alguien podría ayudarme?




Con la fuente predeterminada del sistema iOS 7, utilizará helvetica neue bold si desea mantener la fuente predeterminada del sistema.

    [titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];

O simplemente puede llamarlo:

    [titleText setFont:[UIFont boldSystemFontOfSize:16.0]];



Hace poco escribí una publicación de blog sobre las restricciones de la API de UIFont y cómo resolverla. Puedes verlo here

Con el código que proporciono allí, puede obtener su UIFont deseado tan fácil como:

UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];

Y luego configúrelo en su UILabel (o lo que sea) con: myLabel.font = myFont;




Puede establecer cualquier estilo de fuente, familia, tamaño para la etiqueta, haciendo clic en la letra "T" en el campo Fuente .




Swift 3

Negrita:

let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)

Itálico:

let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)




 btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
 btn.titleLabel.font =  [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];

usted puede hacer la fuente negrita de la etiqueta / botón también usando esto




Ejemplo de texto en negrita:

UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];

Ejemplo de texto cursivo:

UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];



Related