web-dev-qa-db-fra.com

Y a-t-il une police d'épaisseur moyenne entre -systemFontOfSize: et -boldSystemFontOfSize:?

-systemFontOfSize est trop mince et boldSystemFontOfSize est trop épais. J'ai besoin de quelque chose entre les deux.

Quand je crée un UIFont comme ceci:

[UIFont boldSystemFontOfSize:14];

alors le débogueur affiche ces informations de police:

font-family: ".Helvetica NeueUI"; poids de la police: audacieux; style de police: normal; taille de la police: 14px

Parfois, les polices ont un poids moyen. Comment créer une police de ce type mais de poids moyen?

36
Proud Member

L'appel de NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"]); imprime tous les styles de police disponibles pour Helvetica Neue, parmi lesquels le HelveticaNeue-Medium, qui sonne comme celui que vous voulez:

UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:14.0f];

Si vous voulez vous assurer que la police change également lorsque la police système change (par exemple, comme cela a été le cas avec les appareils Retina de Helvetica à Helvetica Neue), vous pouvez d'abord obtenir la police système, puis utiliser ses familyName et pointSize pour les extraire avec un médium. poids en utilisant + fontNamesForFamilyName et ensuite + fontWithName:size:

24
JustSid

À partir de iOS 8.2 vous pouvez utiliser:

[UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
79
Andrei

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)
}
17
Tai Le

Swift 3:

UIFont.systemFont(ofSize: 14, weight: UIFontWeightMedium)
5
Anton Plebanovich

Avec Swift 4, ajoutez cette extension

extension UIFont {
    class func mediumSystemFont(ofSize pointSize:CGFloat) -> UIFont {
        return self.systemFont(ofSize: pointSize, weight: .medium)
    }
}

Ensuite :

myLabel.font = UIFont.mediumSystemFont(ofSize: 16)

Même principe fonctionne avec Semibold, Black, etc., vérifier UIFont.Weight

0
Axel Guilmin

Swift 2.3 et ne change pas la taille de la police:

extension UIFont {
    var mediumFont: UIFont {
        return UIFont.systemFontOfSize(self.pointSize, weight: UIFontWeightMedium)
    }
}

Utiliser avec:

titleLabel.font = titleLabel.font.mediumFont
0
hashier