objective c - ¿Cómo configuro negrita y cursiva en UILabel de iPhone/iPad?
objective-c uifont (15)
¿Cómo configuro negrita y cursiva en UILabel
de iPhone / iPad? Busqué en el foro pero nada me ayudó. ¿Alguien podría ayudarme?
@Edinator echa un vistazo a esto ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
use cualquiera de los anteriores a la hora que desee
Actualizando la asombrosa respuesta de Maksymilian Wojakowski para Swift 3
extension UIFont {
func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? {
guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) else{
return nil
}
return UIFont(descriptor: descriptorL, size: 0)
}
func boldItalic() -> UIFont? {
return withTraits(traits: .traitBold, .traitItalic)
}
}
Como ya se mencionó en estas respuestas, solo necesita el nombre correcto de la fuente . Me parece que iOSFonts.com es el recurso más útil para saber exactamente qué nombre usar.
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]];
Eche un vistazo a: iphonedevwiki.net/index.php/UIFont URL
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];
Esto es muy simple. Aquí está el código.
[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];
Esto te ayudara.
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;
Hice una variación de la respuesta de wojakowski maksymilian donde puedes agregar o eliminar un rasgo (s)
extension UIFont {
func withTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
let descriptor = self.fontDescriptor
.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits))
return UIFont(descriptor: descriptor!, size: 0)
}
func withoutTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
let descriptor = self.fontDescriptor
.withSymbolicTraits( self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptorSymbolicTraits(traits)))
return UIFont(descriptor: descriptor!, size: 0)
}
func bold() -> UIFont {
return withTraits( .traitBold)
}
func italic() -> UIFont {
return withTraits(.traitItalic)
}
func noItalic() -> UIFont {
return withoutTraits(.traitItalic)
}
func noBold() -> UIFont {
return withoutTraits(.traitBold)
}
}
ejemplo
label.font = label.font.italic().bold()
es útil al reutilizar la celda y desea eliminar la cursiva que coloca en una etiqueta en una celda anterior
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 ])
Tengo el mismo problema que necesito aplicar tanto negrita como cursiva en una etiqueta y un botón. Simplemente puede usar el siguiente código para lograr este efecto:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
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
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
Hay una lista de nombres de fuentes que puede establecer en lugar del atributo ''fontWithName''. El enlace está aquí texto de enlace