IOS 添加自定义字体方法详解

时间:2022-09-18 10:21:31

1:获取字体文件

从各种渠道下载字体文件ttf, 网站或者从别的ipa里扣出来.(以fzltxh.ttf为例)

2:将fzltxh.ttf文件拷贝到工程中

3:在Info.plist中添加项:

Fonts provided by application(UIAppFonts)  可以添加一个或多个item,

如 item0 --  fzltxh.ttf

IOS 添加自定义字体方法详解

4:找出真正的字体名称:

因为使用字体时, 要使用字体的真实名称, 而不是文件名, 可以用以下代码来遍历当前设备可用的字体名称,

再从中找出刚才添加的字体真实名称.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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] );
 
}

IOS 添加自定义字体方法详解

FZLTXHK--GBK1-0  这个就是此字体的真实使用名称.

5:使用字体

[UIFont fontWithName:@"FZLTXHK--GBK1-0"size:fontSize];

6:统一替换

如果想把旧工程的字体整体替换掉, 又不想改动已有代码, 可以重写

systemFontOfSize 方法.

?
1
2
3
4
5
6
7
#import
 
@interfaceUIFont (TJCustom)
 
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;
 
@end
?
1
2
3
4
5
6
7
8
9
10
11
12
13
#import "UIFont+custom.h"
 
@implementationUIFont (TJCustom)
 
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize
 
{
 
return[UIFont fontWithName:@"FZLTXHK--GBK1-0"size:fontSize];
 
}
 
@end

这样的话, 原先写的

systemFontOfSize 方法都会用新方法代替, 从而实现整体替换的效果.

文/牵左手不离(简书作者)
原文链接:http://www.jianshu.com/p/edf51b8b6479
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

以上就是IOS 添加自定义字体方法 的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!