iOS添加自定义字体
字体有相应的字体文件,一般是以ttf或者otf为后缀,我们可以去一些第三方网站去下载(也有人专门做了字体出售),Google Fonts是个比较好的网站,可以去找找看。我们就用Open Sans这个字体来做例子吧。首先当然是去下载字体文件,下载后发现是10个ttf文件,没错,这是一个系列的字体,有粗体,有斜体,还有不同的大小,方便用户在不同的场景下使用。
在准备好了字库文件后,就可以加到项目中了,是把ttf文件加入到项目中,这里需要注意的是要把这些ttf加入到bundle中,也就是说,最后的ipa文件中必须包含有这些ttf(否则应用中到哪里去找字库呢?)
在加入后,我们可以分别在FileExplore和Build Phase里面看到这些内容,如下图所示:
设置到这里还有最后一步,就是在info.plist文件中加入相应信息,这一步实际上实在项目的Info页里面增加Fonts provided by application项,并设置相应的ttf文件进去,这样就告诉了应用,我要加入新的字体了,对应的字体文件是哪些。
到这里,字库文件应该是准备好了,下面我们需要确认一下字库的名字,因为代码中需要用名字来指定字体。通常来说,这个名字和文件名是相同的,但也有不同的时候,所以这一步一定不要忽略。
字库的名字这里是通过NSLog这个打印语句来获得,我们看一下代码:
for (NSString *fontFamilyName in [UIFont familyNames]) {
NSLog(@"--- %@ ---", fontFamilyName);
for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
NSLog(@" %@", fontName);
}
NSLog(@" ");
}
这段代码我们逐个读入字体族的名字,然后每个族中读取每种字体的名字。从代码中我们可以知道,实际上我们打印了所有的字体,全部列出实在太长了,所以截了一部分列出来,我们的Open Sans也在其中。
一、统一替换的话需要写个分类 重写系统的systemFontOfSize
如果想把旧工程的字体整体替换掉, 又不想改动已有代码, 可以重写
systemFontOfSize 方法.
#import @interfaceUIFont (JHCustom) + (UIFont *)systemFontOfSize:(CGFloat)fontSize; @end
#import "UIFont+custom.h"
@implementationUIFont (JHCustom)
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize
{
return[UIFont fontWithName:@"SourceSansPro-Light"size:fontSize];
}
@end
systemFontOfSize 方法都会用新方法代替, 从而实现整体替换的效果.
二、不统一替换的话 自己给UIFont写个分类(用代码设置字体的大小)
#import "UIFont+JHFont.h" @implementation UIFont (JHFont)
+(UIFont *)regularFontWithSize:(CGFloat)size{
return [UIFont fontWithName:@"SourceSansPro-Regular" size:size];
} +(UIFont *)lightFontWithSize:(CGFloat)size{
return [UIFont fontWithName:@"SourceSansPro-Light" size:size];
} +(UIFont *)boldFontWithSize:(CGFloat)size{
return [UIFont fontWithName:@"SourceSansPro-Bold" size:size];
}
xib中也是可以用的

iOS添加自定义字体的更多相关文章
- iOS添加自定义字体方法
1:获取字体文件 从各种渠道下载字体文件ttf, 网站或者从别的ipa里扣出来.(以fzltxh.ttf为例) 2:将fzltxh.ttf文件拷贝到工程中 3:在Info.plist中添加项: Fon ...
- IOS添加自定义字体库
1.将需要的字体库xxx.ttf添加到工程中,注意一定要在copy bundle resources中存在,如果没有添加上去 2.在info.plist 文件中添加 fonts provided by ...
- CSS3 里添加自定义字体
添加自定义字体是从 CSS3 开始的,下载到的字体可以在网页中使用. 下载字体 在网上找字体下载,文件后缀名有 ttf.otf 等. 在 CSS 里加载字体 @font-face { font-fam ...
- 微信小程序富文本渲染组件html2wxml及html2wxml代码块格式化在ios下字体过大问题
1.组件使用: 之前微信小程序的富文本渲染组件用的wxParse,对普通富文本确实可以,但是对于代码格式pre标签则无法使用. 下面这个html2wxml很不错,可以支持代码高亮. 详细文档:http ...
- Android学习笔记之,调用系统图库,添加自定义字体,屏幕截图
新年开始的第一天就来学习了慕课迎春活动中的Android心愿分享一课,学到了几个知识点,在此记录一下. 1.调用系统图库调用系统图库用的是intent,步骤为弹出系统图库选择器,选择图片后获取到所选择 ...
- iOS 设置字体样式
1.iOS设置字体样式 label.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:24]; 字体名如下: F ...
- ESP32 开发笔记(十二)LittlevGL 添加自定义字体和物理按键
LittlevGL 添加自定义字体获取字库 ttf 文件可以从一些网站上获取字库文件,比如请注意字体许可证 生成源文件使用 LittlevGL 提供的字库文件转换工具,将 ttf 字库文件转换为源文件 ...
- iOS 关于字体根据不同屏幕尺寸等比适配的问题(zz)
http://www.jianshu.com/p/5815e81abb52 背景 去年的六月份开始了一个新的项目,此项目支持的设备从4S开始一直到6+,也就是说屏幕的尺寸最小的320x480 最大的1 ...
- iOS FONT字体名
下面这段代码可以查看ios中可用的字体,具体那些字体长什么样,可以查看字体册工具. NSArray *familyArray = [UIFont familyNames]; for (id famil ...
随机推荐
- js dom 创建table标签和子属性, 以及创建多选框
代码: <div class="Category"> <span id="Edit_headerTitle">Edit Categori ...
- http 状态码 40x
400 无法解析此请求. 401.1 未经授权:访问由于凭据无效被拒绝. 401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝. 401.3 未经授权:访问由于 ACL 对所请求 ...
- Keystone-all 命令
本文档介绍Icehouse版keystone-all命令 keystone-all命令在一个进程中同时启动服务和管理API,为openstack提供服务目录,授权和身份认证服务. 用法 $ keyst ...
- [ACM] POJ 1611 The Suspects (并查集,输出第i个人所在集合的总人数)
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 21586 Accepted: 10456 De ...
- 如何屏蔽Chrome、Safari等Webkit内核浏览器文本框和文本域的高亮边框、可变大小等自动外观处理
1.高亮外框的取消 input { outline: none; } textarea { outline: none; } 如上,使用CSS的outline就可以实现 2.文本域缩放功能的取消 也是 ...
- 如何在 Ubuntu 16.04,15.10,14.04 中安装 GIMP 2.8.16(类似于PS软件)
GIMP 图像编辑器 2.8.16 版本在其20岁生日时发布了.下面是如何安装或升级 GIMP 在 Ubuntu 16.04, Ubuntu 15.10, Ubuntu 14.04, Ubuntu 1 ...
- 加密算法(对称加密)AES、DES (非对称加密)RSA、DSA
目前主流的加密方式有:(对称加密)AES.DES (非对称加密)RSA.DSA
- Nginx配置优化解读
全局配置 Nginx的配置文件是nginx的安装目录的conf/nginx .conf,nginx.conf配置文件中,几个全局高级配置在模块部分之上. user www www; worker_p ...
- 限定某个目录禁止解析php 限制user_agent php相关配置
- UNIX环境编程学习笔记(27)——多线程编程(二):控制线程属性
lienhua342014-11-09 1 线程属性概括 POSIX 线程的主要属性包括 scope 属性.detach 属性.堆栈地址.堆栈大小.优先级.在头文件 pthread.h 中定义了结构体 ...