iPhone - 将CTFont转换为UIFont?

ary*_*axt 5 iphone objective-c uifont ios ctfont

我试图将CTFont转换为UIFont而不会丢失任何样式和属性,例如:

  • 字体名称
  • 字体大小
  • 字体颜色
  • 下划线
  • 胆大
  • 斜体
  • 等等

omz*_*omz 13

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

颜色和下划线不是字体的属性.粗体和斜体是字体名称的一部分.

  • 如果您的字体没有出现在UIFont.familyNames中,大概是因为它是在没有GSFontAddFromFile的情况下在运行时加载的,这是错误的. (2认同)