首页 > 网站 > 建站经验 > 正文

iO,S开发:部分字体解析

2019-11-02 14:18:59
字体:
来源:转载
供稿:网友

   一、iOS原生字体展示

  在label中选择字体的font,并把font由system改成custom后,就能在family中看到72种特殊字体。这些里面就有很炫的字体,但是全部是只针对英文数字,对中文无效。写了一个程序把所有的原生样式遍历出来展示可以达到如下效果。可以清楚地看到每个字体对应的样式,不用再一个个试了。

iOS开发:部分字体解析 电脑高手

  一共是72种样式,我这个demo程序有两种展示方法,简洁展示和详细展示,简洁展示中只会把每个family的第一个font拿出来展示。最后一张图是详细展示界面的。分了group展示,每个section对应一个family。可以看出苹果的原生字体还是有很多美观的字体,只是都仅对英文支持。

  相信现在大部分的软件大部分的项目都是这么写代码的:

  label.font = [UIFont systemFontOfSize:14];

  如果不想用默认系统字体则需要使用此方法赋值:

  UIFont *font = [UIFont fontWithName:@"Georgia" size:14];

  这里传进Name里的参数是familyName而不是fontName。

  二、获取family名称

  那么如何获取这个family的名称?

  方法1:在storyboard中或是xib中用label的图形化界面选中一个自己喜欢的样式,然后把名称记下写到代码中。

  方法2:上面就有啊,从上面5张图中选吧。

  方法3:(推荐)遍历

  在UIFont类中有这些关于家族名和字体名的开放API,通过这些可以清晰的写个遍历打印,查看所有的familyName和其中包含的fontName

  int i = 0;

  for(NSString *fontfamilyname in [UIFont familyNames])

  {

  NSLog(@"family:'%@'",fontfamilyname);

  for(NSString *fontName in [UIFont fontNamesForFamilyName:fontfamilyname])

  {

  NSLog(@"tfont:'%@'",fontName);

  }

  NSLog(@"-------------%d",i++);

  }

  使用上面的代码即可遍历打印出所有的名称,然后从打印中复制名称到代码中个人感觉更为科学。

  三、外界字体引入项目

  本人亲测,在网上不管是windows字体,还是Android字体只要是ttf格式的,一般iOS程序都支持内嵌。

  具体步骤也很简单:

  1.将ttf文件拖入项目中

  2.修改plist文件,加入Fonts provided by application 配置,后面填上拖进来的项目名

  3.就可以在图形化界面看到新的字体选择了

  4.如果不想从IB界面找,建议使用一下上面的遍历打印,可以用循环打印数量来最直接的看是否导入成功,并找到自己需要的内容。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表