iphone - saber - programa para crear aplicaciones android gratis
¿Hay una fuente de peso medio entre-systemFontOfSize: y-boldSystemFontOfSize:? (6)
-systemFontOfSize es muy delgado, y boldSystemFontOfSize es demasiado grueso. Necesito algo en medio.
Cuando creo un UIFont como este:
[UIFont boldSystemFontOfSize:14];
entonces el depurador imprime esta información de fuente:
font-family: ".Helvetica NeueUI"; font-weight: negrita; estilo de fuente: normal; tamaño de letra: 14px
A veces, las fuentes tienen un peso medio de fuente. ¿Cómo puedo crear una fuente de este tipo pero con un peso medio?
Comenzando con iOS 8.2 puedes usar:
[UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
Con Swift 4, agregue esta extensión
extension UIFont {
class func mediumSystemFont(ofSize pointSize:CGFloat) -> UIFont {
return self.systemFont(ofSize: pointSize, weight: .medium)
}
}
Entonces :
myLabel.font = UIFont.mediumSystemFont(ofSize: 16)
El mismo principio funciona con Semibold, negro, etc., verifique UIFont.Weight
Llamar a NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"]);
imprime todos los estilos de fuente disponibles para Helvetica Neue, entre ellos está HelveticaNeue-Medium
que suena como el que desea:
UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:14.0f];
Si desea asegurarse de que la fuente también cambie cuando cambie la fuente del sistema (por ejemplo, como lo hizo con los dispositivos retina de Helvetica a Helvetica Neue), primero podría obtener la fuente del sistema y luego tomar su familyName
y pointSize
para recuperar uno con medio peso usando + fontNamesForFamilyName
y luego + fontWithName:size:
Swift 2.0, xcode7.1
if #available(iOS 8.2, *) {
titleLabel?.font = UIFont.systemFontOfSize(15, weight: UIFontWeightMedium)
} else {
titleLabel?.font = UIFont(name: "HelveticaNeue-Medium", size: 15)
}
Swift 2.3 y sin cambiar el tamaño de la fuente:
extension UIFont {
var mediumFont: UIFont {
return UIFont.systemFontOfSize(self.pointSize, weight: UIFontWeightMedium)
}
}
Usar con:
titleLabel.font = titleLabel.font.mediumFont
Swift 3:
UIFont.systemFont(ofSize: 14, weight: UIFontWeightMedium)