2011-07-16 21 views
5

estoy tratando de convertir un CTFont a un UIFont sin perder ninguno de los estilos y atributos tales como:iPhone - ¿Convierte CTFont a UIFont?

  • Nombre de la fuente
  • Tamaño de fuente
  • Color de fuente
  • Destaca
  • Negrita
  • Cursiva
  • etc.

Respuesta

13
CTFontRef ctFont = ...; 
NSString *fontName = [(NSString *)CTFontCopyName(ctFont, kCTFontPostScriptNameKey) autorelease]; 
CGFloat fontSize = CTFontGetSize(ctFont); 
UIFont *font = [UIFont fontWithName:fontName size:fontSize]; 

El color y el subrayado no son atributos de la fuente. Negrita y cursiva son parte del nombre de la fuente.

+2

Esto está mal si su fuente no aparece en UIFont.familyNames presumiblemente debido a que se ha cargado en tiempo de ejecución sin GSFontAddFromFile. – Texas

0

Con ARC:

UIFont *uiFont = [UIFont fontWithName:(__bridge NSString *)CTFontCopyPostScriptName(ctFont) size:CTFontGetSize(ctFont)];