-systemFontOfSize est trop mince et boldSystemFontOfSize est trop épais. J'ai besoin de quelque chose entre.
Quand je crée un UIFont comme ceci:
[UIFont boldSystemFontOfSize:14];
alors le débogueur imprime cette information de police:
famille de fontes: ".Helvetica NeueUI"; font-weight: gras; style de police: normal; taille de police: 14px
- google analytics ios sdk V2.0 courte durée de session
- NSURLSession dataTaskForRequest: completion: sélecteur non reconnu envoyé à l'instance
- Comment supprimer mon application itunesconnect avec le statut "Préparer pour Soumission"?
- Comment puis-je récupérer de la valeur de la réponse de Json dans Objective -C
- comment get la réponse du server et si la réponse du server est "Succès" après l'affichage de l'alerte par JSON en utilisant l'objective c
Parfois, les fonts ont un poids de police moyen. Comment puis-je créer une police de ce type mais avec un poids moyen?
Appeler NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"]);
imprime tous les styles de police disponibles pour Helvetica Neue, parmi eux HelveticaNeue-Medium
qui ressemble à 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 du système change (comme avec les appareils rétiniens de Helvetica à Helvetica Neue), vous pouvez d'abord get la police système, puis prendre son familyName
et son pointSize
pour en récupérer un à moyen poids en utilisant + fontNamesForFamilyName
puis + fontWithName:size:
À partir d' iOS 8.2, vous pouvez utiliser:
[UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
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 3:
UIFont.systemFont(ofSize: 14, weight: UIFontWeightMedium)
Swift 2.3 et ne pas changer la taille de la police:
extension UIFont { var mediumFont: UIFont { return UIFont.systemFontOfSize(self.pointSize, weight: UIFontWeightMedium) } }
Utiliser avec:
titleLabel.font = titleLabel.font.mediumFont
Avec Swift 4, ajoutez cette extension
extension UIFont { class func mediumSystemFont(ofSize pointSize:CGFloat) -> UIFont { return self.systemFont(ofSize: pointSize, weight: .medium) } }
Alors :
myLabel.font = UIFont.mediumSystemFont(ofSize: 16)
Le même principe fonctionne avec Semibold, Black, etc, vérifiez UIFont.Weight