【问题标题】:iPhone - Convert CTFont to UIFont?iPhone - 将 CTFont 转换为 UIFont?
【发布时间】:2011-10-06 14:09:44
【问题描述】:

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

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

【问题讨论】:

    标签: ios objective-c iphone uifont ctfont


    【解决方案1】:
    CTFontRef ctFont = ...;
    NSString *fontName = [(NSString *)CTFontCopyName(ctFont, kCTFontPostScriptNameKey) autorelease];
    CGFloat fontSize = CTFontGetSize(ctFont);
    UIFont *font = [UIFont fontWithName:fontName size:fontSize];
    

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

    【讨论】:

    • 如果你的字体没有出现在 UIFont.familyNames 中,这是错误的,可能是因为它是在运行时加载的,没有 GSFontAddFromFile。
    【解决方案2】:

    使用 ARC:

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

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 2011-08-13
      • 1970-01-01
      • 2014-11-20
      • 2012-03-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多