2012-01-29 10 views
0

Je sais comment définir la police en utilisant fontWithName: et comment définir systemFont, à la fois gras et italique. Mais comment définir une police avec un nom si je veux qu'elle soit en italique?Comment faire pour définir fontWithName et italique

myLabel.font = [UIFont fontWithName:@"Georgia" size:15]; 

ou

myLabel.font = [UIFont italicSystemFontOfSize:15]; 

Je veux une italic Géorgie, comment?

+0

Selon le commentaire [https://stackoverflow.com/questions/9052570/how-to-set-fontwithname-and-italic/369 74547 # comment11373039_9052690), Lars le veut vraiment en italique et en gras. –

Répondre

2

vous devez connaître le nom du variant, quelque chose comme "GeorgiaIT" ou "GeorgiaItalic".

+0

Je sais que c'est vraiment vieux, mais http://iosfonts.com/ vous donne un bon aperçu des polices disponibles et de leurs noms de variantes. – Andrew

6

Pour en italique, vous aurez besoin de faire quelque chose comme:

[UIFont fontWithName:@"Georgia-Italic" size:15]; 

Ou:

[UIFont fontWithName:@"GeorgiaItalic" size:15]; 

Pour savoir que vous seriez mieux loti en utilisant:

NSArray *fontArray = [UIFont fontNamesForFamilyName:@"Georgia"]; 

Ensuite, imprimez ceci dans le débogueur pour voir quels sous-types sont disponibles.

Pour utiliser la police système il y a:

[UIFont boldSystemFontOfSize:SIZE]; 

Et:

[UIFont italicSystemFontOfSize:SIZE]; 

Hope this helps :)

+2

Merci, ça m'a beaucoup aidé. Ce que je voulais vraiment, c'était de l'audace et de l'italique, donc après quelques expériences, Georgia-BoldItalic a travaillé. –

+0

vous devriez accepter la réponse, car il semble que cela vous a aidé –

1

Même problème ici. Je l'ai résolu de cette façon, ce qui donnera soit (1) Le visage en italique que vous cherchez (en supposant que ça s'appelle ...- Italique), soit (2) Au moins la police de base pour que les choses ne se fassent pas . Incidemment, toute la chose NSRange est de sorte que nous ignorons -ItalicBold, par exemple, bien que ce soit habituellement -BoldItalic, donc nous l'ignorions quand même. Vive -W

UIFont *myBaseForItalicFont = [UIFont preferredFontForTextStyle:UIFontDescriptorTextStyleBody]; 
NSString *myFontFamilyName = myBaseForItalicFont.familyName; 
NSArray *myFontNames = [UIFont fontNamesForFamilyName:myFontFamilyName]; 
for (NSString *aFontName in myFontNames) 
{ 
    NSRange myRange = [aFontName rangeOfString:@"-Italic"]; 
    if (myRange.location != NSNotFound) 
    { 
     if (myRange.location + myRange.length >= aFontName.length) 
     { 
      // This is it! Nothing before the hyphen, nothing after. 
      myBaseForItalicFont = [UIFont fontWithName:aFontName size:myRVGItalicFont.pointSize]; 
      break; 
     } 
    } 
} 
2

Ne pas essayer de jouer avec les noms des polices. Avec iOS 7 +, en utilisant le descripteur de police que vous avez besoin pas de nom:

// original font to modify 
UIFont *font = [UIFont fontWithName:@"Georgia" size:15]; 
// adding bold and italic descriptor 
UIFontDescriptor *fontDescriptor = [font.fontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic]; 
// making the new font; size:0 means 'keep the size as is' 
myLabel.font = [UIFont fontWithDescriptor:fontDescriptor size:0]; 

source

avec iOS3.2 +, vous pouvez essayer CoreText:

// original font to modify 
UIFont *font = [UIFont fontWithName:@"Georgia" size:15]; 
// CoreText font equivalent 
CTFontRef ctFont = CTFontCreateWithName((__bridge CFStringRef)font.fontName, font.pointSize, NULL); 
// adding bold and italic 
CTFontRef ctFont2 = CTFontCreateCopyWithSymbolicTraits(ctFont, 0.0, NULL, kCTFontBoldTrait | kCTFontItalicTrait, kCTFontBoldTrait | kCTFontItalicTrait); 
CFRelease(ctFont); 
// back to UIFont 
UIFont *newfont = [UIFont fontWithName:CFBridgingRelease(CTFontCopyPostScriptName(ctFont2)) size:CTFontGetSize(ctFont2)]; 
CFRelease(ctFont2); 
0

Voici la réponse Cœur de Swift:

let originalFont = UIFont(name: "Georgia", size: 15) 
// or: UIFont.preferredFont(forTextStyle: .body) 
let originalFontDesc = originalFont.fontDescriptor 
let italicFontDesc = originalFontDesc.withSymbolicTraits(.traitItalic) 
let italicFont = UIFont(descriptor: italicFontDesc, size: 0) 
myLabel.font = italicFont 
Questions connexes