iOS 使用自定义字体

现在的 APP 都极具个性与风格特点,APP界面中的文字自然也需要各种变化和改变,但是iOS 官方的字体并不能满足所有需求,下面我们就来看看如何在 iOS 的项目中使用自定义字体。

iOS 系统字体可在下面的网站进行查询

http://iosfonts.com/

第一步 准备字体文件

一般如果需要自定义字体,美工都会准备好,如果没有的话就需要自己去网上搜索下载了,有.ttf.odf等类型。
其实 Mac OS 中也自带了许多字体样式并提供.ttf字体文件

  • 打开 launchpad 的其他目录,找到字体册

字体册

  • 基本包括了常见的汉字以及其他特殊的字体。选中字体右键-在 Finder 中显示 即可找到该字体的文件

字体列表

字体文件

第二步 将字体文件导入工程

  • 将准备好的字体文件导入工程中

导入文件

  • 前往 TARGETS -> Build Phases -> Copy Bundle Resources
    确保刚添加的字体文件在列表中,否则需要手动加进来

添加

添加

添加成功

第三步 配置 Info.plist

添加Fonts provided by application 并加入要使用的字体文件名称,这里可以设置多个字体
注意要填写 工程中字体文件的 文件名称+后缀

设置字体名

第四步 使用新字体

使用如下代码可以输出工程中所有可用的字体类型
在控制台输出的字体中 查找到新添加的字体名称,如果没有搜索到 说明添加失败。

NSArray *familyNames = [UIFont familyNames];  
    for( NSString *familyName in familyNames ){  
        printf( "Family: %s \n", [familyName UTF8String] );  
        NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];  
        for( NSString *fontName in fontNames ){  
            printf( "\tFont: %s \n", [fontName UTF8String] );  
        }  
    }

输出

配置成功后,即可使用新字体了!

self.Label.font = [UIFont fontWithName:@"Slicker" size:30];

一些注意事项

字体名称问题

  • 在 info.plist文件中配置
    Fonts provided by application 下添加字体时,输入的是工程中的字体文件的名称+后缀

  • 确认使用的字体名称
    在网上下载的字体文件中,很多时候文件的名称和字体的名称并不一致, info.plist中的字体文件名称并不一定就是字体的名称(宋体、黑体),若不一致则在[UIFont fontWithName:@"Slicker" size:30] 中使用并不会有对的效果。在上述输出工程所有字体中可以看到字体类型为数众多,很难分辨出哪个是新加的字体,那么如何快速确认下载的字体的名称到底是什么呢?
    答案很简单,字体册
    使用字体册打开下载的字体文件,标题栏上的 名称 就是字体的实际名称了,也就是在代码中要使用的字体名称。

验证

  • 验证字体是否可用
    有时候在网络上下载的字体文件会有损坏,无法正常使用,所以即使配置没有问题还是无法达到预期的效果,所以在使用字体前,最好先验证一下字体文件是否完好。验证方法也很简单:使用字体册安装字体
    如果安装失败或则出现警告,那么就需要换一个字体文件了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS中,可以通过以下方式自定义NavigationBar: 1. 设置NavigationBar的背景色和透明度 ```swift // 设置NavigationBar的背景色 navigationController?.navigationBar.barTintColor = UIColor.red // 设置NavigationBar的透明度 navigationController?.navigationBar.isTranslucent = true ``` 2. 设置NavigationBar的标题和字体样式 ```swift // 设置NavigationBar的标题 navigationItem.title = "Custom Title" // 设置NavigationBar的字体样式 navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 18), NSAttributedString.Key.foregroundColor: UIColor.white] ``` 3. 设置NavigationBar的返回按钮和图片 ```swift // 设置NavigationBar的返回按钮 let backButton = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil) navigationItem.backBarButtonItem = backButton // 设置NavigationBar的返回图片 let backImage = UIImage(named: "back") navigationController?.navigationBar.backIndicatorImage = backImage navigationController?.navigationBar.backIndicatorTransitionMaskImage = backImage ``` 4. 隐藏NavigationBar ```swift // 隐藏NavigationBar navigationController?.navigationBar.isHidden = true ``` 5. 自定义NavigationBar的左右按钮 ```swift // 自定义NavigationBar的左按钮 let leftButton = UIBarButtonItem(title: "Left", style: .plain, target: self, action: #selector(leftButtonTapped)) navigationItem.leftBarButtonItem = leftButton // 自定义NavigationBar的右按钮 let rightButton = UIBarButtonItem(title: "Right", style: .plain, target: self, action: #selector(rightButtonTapped)) navigationItem.rightBarButtonItem = rightButton // 左按钮点击事件 @objc func leftButtonTapped() { // do something } // 右按钮点击事件 @objc func rightButtonTapped() { // do something } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值