[iOS]中字体样式设置 API

作者: e2f2d779c022 | 来源:发表于2017-12-23 13:00 被阅读1306次

今天项目需求里要求给文字设置字体样式, 以前的工作中并没有涉及字体样式的设置, 后来在网上找到了相关的方法, 这里总结一下.

作者写了一个给 iPhone X 去掉刘海的 APP,而且其他 iPhone 也可以玩,有兴趣的话去 App Store 看看。点击前往。

CocoaUIKit 框架中为开发者提供了高层次的 API 以及方便的枚举、加载和使用字体。Cocoa Touch 使用 UIFont 类来封装字体。每个 iOS 设备都内置了系统字体。

01.Xib 或者 Storyboard

如果是在 Xib 或者 Storyboard 中你可以通过, 比如说 UILabel,你可以同过设置它的属性来直接设置字体样式:

  • 点击向右箭头会弹出2、3所示的弹窗

  • 点击font会有系统(System)和自定义(Custom)等选项

  • 如果你选择 System 默认就是苹方字体,此时你只能设置比如 regular、light、thin 等;但是如果你选择 Custom,就会弹出一大串字体名称供你选择,用什么就选什么,很方便。

02.代码中

如果你是在代码中设置文字字体,你就必须知道更多,请往下看。

字体被组织成字体族科(Families),每个族科又包含字样(Faces)。例如,Helvetica 是一个字体族科,Helvetica Bold是 Helvetica 族科中的一个字样。

要加载字体,你必须知道字体的字样(字体的名字),要知道字样,你必须知道它的族科。

怎么获取系统字体的族科呢,我们可以循环输出系统字体族科,使用 UIFont 类的familyNames 类方法,通过这个类方法得到字体族科名字然后用 UIFont 类的fontNamesForFamilyName: 类方法,传递 family name 作为参数,并返回一个字体名称的数组(array):

for(NSString *familyName in [UIFont familyNames]) {

    NSLog(@"Font FamilyName = %@",familyName); // 输出字体族科名字

    for(NSString*fontName in [UIFont fontNamesForFamilyName:familyName]){
    
        NSLog(@"\t%@",fontName); // 输出字体族科下字样名字
        
    }
}

在 iOS 模拟器上运行代码,得到如下结果:

...

Font Family = Geeza Pro
GeezaPro
GeezaPro-Bold
Font Family = Helvetica Neue
HelveticaNeue-Italic
HelveticaNeue-Bold
...

字体族科后面加-Bold 就是加粗, 加 -Oblique 就是倾斜等.

拿到字体族科和字样名称以后,你就可以直接使用代码设置文字的字样了。

如下 mouthLUILabel 的一个实例对象,可以使用 UIFontlabelfont 属性赋值,运行代码,你就会发现,字体神奇的发生了变化。

mouthL.font = [UIFont fontWithName:@"PingFangTC-Light" size:11];

我的文章集合

下面这个链接是我所有文章的一个集合目录。这些文章凡是涉及实现的,每篇文章中都有 Github 地址,Github 上都有源码。

我的文章集合索引

你还可以关注我自己维护的简书专题 iOS开发心得。这个专题的文章都是实打实的干货。如果你有问题,除了在文章最后留言,还可以在微博 @盼盼_HKbuy上给我留言,以及访问我的 Github

赞助

你这一赞助,我写的就更来劲了!

微信赞助扫码


支付宝赞助扫码


相关文章

  • [iOS]中字体样式设置 API

    今天项目需求里要求给文字设置字体样式, 以前的工作中并没有涉及字体样式的设置, 后来在网上找到了相关的方法, 这里...

  • iOS 属性文字NSAttributedString/NSMut

    在iOS中的文本样式是固定的,只能设置字体样式(font)或者设置字体,如果需要自定义文本样式,则需要用属性文本(...

  • iOS 系统字体设置加粗斜体

    说明 1.加粗斜体,字体样式,API无法同时设置斜体,加粗。2.因此UI为字体样式,需导入字体库,导致增大包体积。...

  • iOS 字体样式设置

    systemFontOfSize boldSystemFontOfSize: italicSystemFontOf...

  • CSS格式化排版

    文字排版-字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。 这里注意不要设置不常用的字体...

  • css格式化排版

    css格式化排版 一、文字排版 css可以设置网页中的字体、字号、颜色等样式属性 1、字体css样式中为网页设置字...

  • 在项目中设置NavigationBar

    方法一: 在APPDelegate中设置: 设置navigationBar的字体的样式: NSDictionary...

  • ios开发中的小技巧

    样式技巧 设置状态栏样式(ios7之前是Application类中设置的,ios9后是在控制器中设置) 设置UIT...

  • 前端开发学习笔记(六)- Css 文字排版

    一.文字排版--字体 我们可以使用CSS样式为网页中的文字设置字体,字号,颜色等样式属性。这里注意不要设置不常用的...

  • iOS设置字体样式大全

    今天写代码的时候遇到一个需求,更改导航栏字体,后来查了下相关的资料,在这里总结下。为了界面好看,我们经常要更改 U...

网友评论

    本文标题:[iOS]中字体样式设置 API

    本文链接:https://www.haomeiwen.com/subject/dqxqgxtx.html