iOS自定义字体及失败的解决方案

  1. 将字体源文件拖入工程,确保勾选了 Target 字体文件是以.tff 为后缀的字体文件


    iOS自定义字体及失败的解决方案_第1张图片
    Snip20171024_1.png

    一般我们的设计人员会给到这个文件 如果你想测试 也可以从 Mac获取到很多的字体文件 方法如下

iOS自定义字体及失败的解决方案_第2张图片
Snip20171024_3.png
iOS自定义字体及失败的解决方案_第3张图片
Snip20171024_2.png
  1. 在 info.plist 中添加一个数组类型关键字 "Fonts provided by application",并将源文件的名字(加后缀)添加为一项。


    iOS自定义字体及失败的解决方案_第4张图片
    Snip20170915_3.png
  1. 使用 使用控制台输出的方式能够找到新添加的字体名字
    这里要特别注意的是 在控制台输出的字体名字 不一定和我们文件名字是一致的 但会有部分字节是相同的所以需要我们细心的查找一番 如笔者就是大小写发生了变化 有的时候变化是你想不到的 所以一定要用 真正捕捉到的 名称 否则会不成功的
iOS自定义字体及失败的解决方案_第5张图片
Snip20171024_6.png
    for (NSString *familyNames in [UIFont familyNames]) {
        
        for (NSString *fontNames in [UIFont fontNamesForFamilyName:familyNames]) {
            
            NSLog(@"%@",fontNames);
        }
    }

  1. UIFont(name: "custom_font_name", size: 20)初始化字体
  • 当然笔者也发现了另外一个秘密
    笔者在 Demo 工程中测试,能够正确的显示新添加的字体。但是,按照该方法将字体加入项目工程,却没有效果了,familyFonts 的数量没有增加,经过一番折腾之后,发现用 UIAppFonts 替换 Fonts provided by application 作为 Key 就可以了。
    查阅了下文档发现 UIAppFonts 才是真正的 Key,“Fonts provided by application” 只是在 Xcode 中可读的一种形式。照理说第二种形式会自动转换为 UIAppFonts,如果不幸无效的话,就直接使用 UIAppFonts 吧。

  • 最后笔者送上 苹果自带的所有字体的效果 和他们的名字
    Font Family: American Typewriter( AmericanTypewriter,AmericanTypewriter-Bold)
    Font Family: AppleGothic(AppleGothic)
    Font Family: Arial(ArialMT,Arial-BoldMT,Arial-BoldItalicMT,Arial-ItalicMT)
    Font Family: Arial Rounded MT Bold(ArialRoundedMTBold)
    Font Family: Arial Unicode MS(ArialUnicodeMS)
    Font Family: Courier(Courier,Courier-BoldOblique,Courier-Oblique,Courier-Bold)
    Font Family: Courier New(CourierNewPS-BoldMT,CourierNewPS-ItalicMT,CourierNewPS-BoldItalicMT,CourierNewPSMT)
    Font Family: DB LCD Temp (DBLCDTempBlack)
    Font Family: Georgia( Georgia-Bold, Georgia,Georgia-BoldItalic,Georgia-Italic)
    Font Family: Helvetica(Helvetica-Oblique,Helvetica-BoldOblique,Helvetica,Helvetica-Bold) 默认字体
    Font Family: Helvetica Neue(HelveticaNeue,HelveticaNeue-Bold)
    Font Family: Hiragino Kaku Gothic **** W3(HiraKakuProN-W3)
    Font Family: Hiragino Kaku Gothic **** W6(HiraKakuProN-W6)
    Font Family: Marker Felt( MarkerFelt-Thin)
    Font Family: STHeiti J (STHeitiJ-Medium,STHeitiJ-Light)
    Font Family: STHeiti K( STHeitiK-Medium, STHeitiK-Light)
    Font Family: STHeiti SC(STHeitiSC-Medium, STHeitiSC-Light)
    Font Family: STHeiti TC(STHeitiTC-Light,STHeitiTC-Medium)
    Font Family: Times New Roman(TimesNewRomanPSMT,TimesNewRomanPS-BoldMT, TimesNewRomanPS-BoldItalicMT, TimesNewRomanPS-ItalicMT)
    Font Family: Trebuchet MS( TrebuchetMS-Italic,TrebuchetMS,Trebuchet-BoldItalic,TrebuchetMS-Bold)
    Font Family: Verdana( Verdana-Bold,Verdana-BoldItalic, Verdana,Verdana-Italic)
    Font Family: Zapfino( Zapfino)

iOS自定义字体及失败的解决方案_第6张图片

你可能感兴趣的:(iOS自定义字体及失败的解决方案)