iOS 7 introduce una nuova UIFontDescriptor classe, che lo rende molto più facile:
UIFont *font = [UIFont fontWithName:@"Helvetica Neue" size:12];
NSLog(@"plain font: %@", font.fontName); // “HelveticaNeue”
UIFont *boldFont = [UIFont fontWithDescriptor:[[font fontDescriptor] fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold] size:font.pointSize];
NSLog(@"bold version: %@", boldFont.fontName); // “HelveticaNeue-Bold”
UIFont *italicFont = [UIFont fontWithDescriptor:[[font fontDescriptor] fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic] size:font.pointSize];
NSLog(@"italic version: %@", italicFont.fontName); // “HelveticaNeue-Italic”
UIFont *boldItalicFont = [UIFont fontWithDescriptor:[[font fontDescriptor] fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic] size:font.pointSize];
NSLog(@"bold & italic version: %@", boldItalicFont.fontName); // “HelveticaNeue-BoldItalic”
Per le persone che si sono qui in cerca di un cacao (OS/X) equivalente, UIFontDescriptor viene da NSFontDescriptor, disponibile dal 10.3 .
fonte
2014-01-26 16:44:40
hmm, c'è un problema: per il systemFont, hai familyName == ".Helvetica NeueUI" e l'array fontNames è un array vuoto: -/ – Michael
@Michael ho provato 'UIFont * boldFont = [self boldFontFromFont : [UIFont systemFontOfSize: 12.0]]; '. L'output di NSLog è: ' font-family:" Helvetica-BoldOblique "; font-weight: bold; stile di carattere: corsivo; font-size: 12px' –
filwag
ok, hai usato ios6? perché io uso ios 5. forse il sistema dei caratteri è cambiato in ios6? – Michael