iPhone - 将CTFont转换为UIFont?

时间:2011-07-16 02:20:49

标签: ios objective-c iphone uifont ctfont

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

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

2 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:0)

使用ARC:

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