Complétant l'article How To: Les polices personnalisées sur l'iPhone OS 3. 2 Je propose la FontsBook sources , une application iPhone simple qui montre une table de toutes les polices du système, regroupés par famille.



Complétant l'article How To: Les polices personnalisées sur l'iPhone OS 3. 2 Je propose la FontsBook sources , une application iPhone simple qui montre une table de toutes les polices du système, regroupés par famille.



Avec la version 3.2 d'IOS que vous pouvez inclure vos propres polices dans une ressource d'application pour être utilisé exactement comme ceux fournis avec le système:
file. Les applications qui veulent utiliser des polices personnalisées peuvent désormais inclure des polices ceux dans leur bundle demande et d'enregistrer avec le système par les polices y compris l'
UIAppFontsLeur clé dansInfo.plistfichier. La valeur de cette clé est un tableau de chaînes Identifier les fichiers de polices dans le paquet de l'application. Lorsque le système voit la clé, il charge les polices spécifiées et les rend disponibles à l'application.
L'iPhone d'Apple offre un nombre limité de polices pour les développeurs. La liste des polices disponibles est facilement réalisé par le code, comme nous le verrons. Si vous souhaitez utiliser vos propres polices, comme en l'incluant dans les ressources, il est un peu plus articulé et conivolge également la délivrance des licences (droits) des polices "embed" ... nous allons parler plus tard. Se tournant plutôt vers les sources officielles présentes dans l'iPhone, ils sont (cliquez sur l'image pour agrandir):
L'Apple iPhone SDK fournit un accès aux polices système spécial. Ils sont identifiés par des constantes particulières et sont les suivants:
1 2 3 | [ UIFont boldSystemFontOfSize : 12.0 ] ; UIFont myBoldFont * = [UIFont boldSystemFontOfSize: 12.0]; [ UIFont SystemFontOfSize : 12.0 ] ; UIFont mySystemFont * = [UIFont SystemFontOfSize: 12.0]; [ UIFont italicSystemFontOfSize : 12.0 ] ; UIFont myItalicFont * = [UIFont italicSystemFontOfSize: 12.0]; |
Si vous obtenez en fait un pointeur sur une Odei polices affiché dans l'image ci-dessus il suffit d'utiliser:
1 | [ UIFont fontWithName : @ "Helvetica-Bold" size : 22.0 ] ; UIFont myCustomFont * = [fontWithName UIFont: @ "Helvetica-Bold" taille: 22.0]; |
Comme vous pouvez voir la direction de la police est spécial, en plus de la famille (Helvetica, Courier, etc ...) doit préciser le type (gras, italique, etc ...). En pratique, donc, une police doit être équipé avec ces caractéristiques. L'Helvetica, par exemple, est représentée par:
1 2 3 4 | Helvetica Helvetica-Bold Helvetica-Oblique Helvetica-BoldOblique |
Si vous souhaitez afficher vos polices directement sur l'iPhone, voici quelques lignes de code utiles:
1 2 3 4 5 6 7 8 9 10 11 12 | listOfFonts = [ [ NSArray alloc ] initWithArray : [ UIFont familyNames ] ] ; NSArray * listOfFonts = [[ NSArray alloc] initWithArray: [UIFont familyNames]]; subFontTypes; NSArray * subFontTypes; int i = 0 ; i< [ listOfFonts count ] ; i ++ ) { for (int i = 0; i <[listOfFonts count]; i + +) { "Font Family: %@" , [ listOfFonts objectAtIndex : i ] ) ; NSLog (@ "famille de polices:% @", [objectAtIndex listOfFonts: i]); NSArray alloc ] initWithArray : [ UIFont fontNamesForFamilyName : [ listOfFonts objectAtIndex : i ] ] ] ; subFontTypes = [[ NSArray alloc] initWithArray: [UIFont fontNamesForFamilyName: [objectAtIndex listOfFonts: i]]]; int j = 0 ; j< [ subFontTypes count ] ; j ++ ) { for (int j = 0 j <[subFontTypes count] j + +) { "+----->Type: %@" , [ subFontTypes objectAtIndex : j ] ) ; NSLog (@ type "+----->:% @ ", [objectAtIndex subFontTypes: j]); } ; [Communiqué de SubFontTypes]; } ; [ListOfFonts release]; |
Avec le SDK 2.2.1 sur mon simulateur, j'ai obtenu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | Famille de polices: Courier Tapez +----->: Courier Tapez +----->: Courrier-BoldOblique Tapez +----->: Courier-Oblique Tapez +----->: Courier-Bold Famille de polices: AppleGothic Tapez +----->: AppleGothic Famille de polices: Arial Tapez +----->: ArialMT +-----> Type: Arial-BoldMT +-----> Type: Arial-BoldItalicMT +-----> Type: Arial-ItalicMT Famille de polices: sthe TC Tapez +----->: Light-STHeitiTC +-----> Type: moyen STHeitiTC Famille de polices: Hiragino Kaku Gothic Pron Tapez +----->: HiraKakuProN-W6 Tapez +----->: HiraKakuProN-W3 Famille de polices: Courier New Tapez +----->: CourierNewPS-BoldMT Tapez +----->: CourierNewPS-ItalicMT Tapez +----->: CourierNewPS-BoldItalicMT Tapez +----->: CourierNewPSMT Famille de polices: Zapfino +-----> Type: Zapfino Famille de polices: Arial Unicode MS Tapez +----->: ArialUnicodeMS Famille de polices: sthe SC Tapez +----->: Moyen-STHeitiSC Tapez +----->: Light-STHeitiSC Famille de polices: American Typewriter Tapez +----->: AmericanTypewriter Tapez +----->: AmericanTypewriter-Gras Famille de police: Helvetica +-----> Type: Helvetica-Oblique +-----> Type: Helvetica-BoldOblique +-----> Type: Helvetica Tapez +----->: Helvetica-Bold Famille de polices: feutre Tapez +----->: Thin-MarkerFelt Famille de police: Helvetica Neue Tapez +----->: HelveticaNeue +-----> Type: HelveticaNeue-Gras Famille de polices: DB LCD Temp Tapez +----->: DBLCDTempBlack Famille de polices: Verdana +-----> Type: Verdana-Gras Tapez +----->: Verdana-BoldItalic +-----> Type: Verdana Tapez +----->: Verdana-italique Famille de police: Times New Roman Tapez +----->: TimesNewRomanPSMT Tapez +----->: TimesNewRomanPS-BoldMT Tapez +----->: TimesNewRomanPS-BoldItalicMT Tapez +----->: TimesNewRomanPS-ItalicMT Famille de polices: la Géorgie +-----> Type: Georgia-Gras +-----> Type: Géorgie +-----> Type: Georgia-BoldItalic +-----> Type: Georgia-italique Famille de polices: sthe J +-----> Type: moyen STHeitiJ +-----> Type: Light-STHeitiJ Famille de polices: Arial Rounded MT Bold Tapez +----->: ArialRoundedMTBold Famille de polices: Trebuchet MS Tapez +----->: TrebuchetMS-italique Tapez +----->: TrebuchetMS +-----> Type: Trébuchet-BoldItalic Tapez +----->: TrebuchetMS-Gras Famille de polices: sthe K Tapez +----->: Moyen-STHeitiK Tapez +----->: Light-STHeitiK |
Derniers Commentaires
Robert : Je rispsoto vos questions avec plaisir. L'idée est vraiment géniale. Je suis à la recherche d'une solution ...
Sting : @ Darius - vous pouvez voir un exemple ici: http://www.fight4fun.it/ cliquant sur: CARTES j'espère ...
Vik : Giustappunto je travaille sur un projet et le client m'a demandé de montrer toutes les nouvelles (qui sont CPT) au ...
Giovambattista Fazioli : @ paso: absolument. Il suffit d'identifier le champ [CCI] entrée [/ cci] que vous souhaitez ...
paso : Bonjour je voudrais demander un service, vous pouvez utiliser le sélecteur de date avec cform7 j'ai spiegp mieux que je peux mettre en œuvre ...