55 votes

Comment vérifier si une police est disponible dans la version d'iOS ?

Je travaille actuellement sur une application qui utilise la police "ChalkboardSE-Regular" et ma cible de déploiement est la 4.0+. Cette police n'était pas disponible en 4.1 mais elle est prise en charge en 4.3. Quelle serait la meilleure façon de vérifier si la police existe et, si ce n'est pas le cas, d'utiliser une autre police prise en charge sur les versions <4.1 d'iOS ? [UIFont familyName] renvoie une liste de ces polices "Chalkboard SE".

Merci d'avance !

T

2voto

disaster code Points 21

C'est ce que j'ai fait sur l'objectif C pour savoir si la police est disponible ou non.

NSFont *font = [NSFont fontWithName:@"thefont" size:25.0];
if (font==nil) {
    // thefont is available
} else {
    // thefont is not available
}

2voto

eMdOS Points 889

Version Swift :

UIFont.familyNames().sort( { $0 < $1 } ).forEach({ print("\($0)"); UIFont.fontNamesForFamilyName("\($0)").sort( { $0 < $1 } ).forEach({ print("     \($0)") }) })

2voto

Sauvik Dolui Points 386

Eh bien, plutôt que d'écrire une seule ligne de code, vous pouvez simplement ouvrir http://iosfonts.com et vérifier la disponibilité en fonction de la prise en charge de votre version d'iOS. Vous pouvez également savoir à quoi cela ressemblerait.

http://iosfonts.com Preview Feature

1voto

Pontus Points 715

Voici une conversion de la réponse de Steves en code Swift (pour un copier-coller rapide) :

    var fontFamilies = UIFont.familyNames()

    for (var i:Int = 0; i < fontFamilies.count; i++) {
        var fontFamily: NSString = fontFamilies[i] as NSString
        var fontNames: NSArray = UIFont.fontNamesForFamilyName(fontFamilies[i] as String) as NSArray

        NSLog ("%@: %@", fontFamily, fontNames)
    }

1voto

superarts.org Points 685

Essayez d'initer avec ce nom de police, et si c'est nil faire autre chose. Code Swift :

if let font = UIFont(name: name, size: size) { // ok } else { // not ok }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X