IOS添加自定义字体
来源:互联网 发布:中国历史纪录片 知乎 编辑:程序博客网 时间:2024/04/27 21:24
IOS添加自定义字体
参考:http://blog.sina.com.cn/s/blog_6f9a971801011ie9.html
准备:
字体文件(.ttf,.odf等)
方法1:
添加对应的字体(.ttf或.odf)到工程的resurce,使用cocos2d中的FontLabel库,FontLabel继承于UILabel,象UILabel一样使用就好了
fontName直接使用添加的资源名字即可
方法2:
1.添加对应的字体(.ttf或.odf)到工程的resurce,例如 “华文宋体.ttf”
2.在info.plist中添加一项 Fonts provided by application (item0对应的value为华文宋体.ttf,添加多个字体依次添加就可以了)
3.使用(由于原作者的讲述和一些注意事项没给出来,所有在这里进行补充,原文请参照上述链接)
UIFont* font = [UIFont fontWithName:@"STSong" size:30];
重点在于字体的名字。如果使用@"华文宋体.ttf",返回的是nil("华文宋体"、和"STSong.ttf"我都试过,返回的都是nil)。
而这个名字我们可以使用mac OS下的Font Book工具查找。如果是Foot Book中没有的字体,就先进行添加,然后找到这个字体的名字就可以了(这个没试过,我直接使用Font Book中已有的中文字体)。
或者使用原作者提供的笨方法,一个一个找。或者自己写个查找程序,对比下就应该可以了。
在这里再啰嗦两句。原作者说:
Mac下窗口的标题栏有字体的Family name,Windows下能显示Family name和Font name,下面这句用Family name和Font name都可以
self.labelTest1.font = [UIFont fontWithName:@"RETURN TO CASTLE" size:30];
其实不然。family name和font name是不同的。
self.familyNames = [UIFont familyNames]; // 获取所有的familyName
self.familyNames = [self.familyNames sortedArrayUsingSelector:@selector(stringCompare:)]; // 排序
self.fontNames = [[NSMutableArray alloc] init];
for (int i = 0, count = self.familyNames.count; i < count; ++i)
{
NSArray* fontArray = [UIFont fontNamesForFamilyName:[self.familyNames objectAtIndex:i]]; // 获取相应的familyName下的fontNames
[self.fontNames addObject:fontArray]; // 将fontName存入数组
}
然后用一个UITableView显示出来,可以看到familyName下面有好几个fontName。
中文字体也是一样,我实验了Font Book下的黑体(Heiti SC,iOS系统有自带Heiti TC),该字体的familyName为Heiti SC,而在其下还有分STHeitiSC-Medium和STHeitiSC-Light。(黑体显示的中文效果好像和系统自带的差不多,可能iOS本身就有Heiti TC吧。不过楷体就很明显了,宋体也不太明显。)
附上我做的一个简单的Demo。
参考:http://blog.sina.com.cn/s/blog_6f9a971801011ie9.html
准备:
字体文件(.ttf,.odf等)
方法1:
添加对应的字体(.ttf或.odf)到工程的resurce,使用cocos2d中的FontLabel库,FontLabel继承于UILabel,象UILabel一样使用就好了
fontName直接使用添加的资源名字即可
方法2:
1.添加对应的字体(.ttf或.odf)到工程的resurce,例如 “华文宋体.ttf”
2.在info.plist中添加一项 Fonts provided by application (item0对应的value为华文宋体.ttf,添加多个字体依次添加就可以了)
3.使用(由于原作者的讲述和一些注意事项没给出来,所有在这里进行补充,原文请参照上述链接)
UIFont* font = [UIFont fontWithName:@"STSong" size:30];
重点在于字体的名字。如果使用@"华文宋体.ttf",返回的是nil("华文宋体"、和"STSong.ttf"我都试过,返回的都是nil)。
而这个名字我们可以使用mac OS下的Font Book工具查找。如果是Foot Book中没有的字体,就先进行添加,然后找到这个字体的名字就可以了(这个没试过,我直接使用Font Book中已有的中文字体)。
或者使用原作者提供的笨方法,一个一个找。或者自己写个查找程序,对比下就应该可以了。
在这里再啰嗦两句。原作者说:
Mac下窗口的标题栏有字体的Family name,Windows下能显示Family name和Font name,下面这句用Family name和Font name都可以
self.labelTest1.font = [UIFont fontWithName:@"RETURN TO CASTLE" size:30];
其实不然。family name和font name是不同的。
self.familyNames = [UIFont familyNames]; // 获取所有的familyName
self.familyNames = [self.familyNames sortedArrayUsingSelector:@selector(stringCompare:)]; // 排序
self.fontNames = [[NSMutableArray alloc] init];
for (int i = 0, count = self.familyNames.count; i < count; ++i)
{
NSArray* fontArray = [UIFont fontNamesForFamilyName:[self.familyNames objectAtIndex:i]]; // 获取相应的familyName下的fontNames
[self.fontNames addObject:fontArray]; // 将fontName存入数组
}
然后用一个UITableView显示出来,可以看到familyName下面有好几个fontName。
中文字体也是一样,我实验了Font Book下的黑体(Heiti SC,iOS系统有自带Heiti TC),该字体的familyName为Heiti SC,而在其下还有分STHeitiSC-Medium和STHeitiSC-Light。(黑体显示的中文效果好像和系统自带的差不多,可能iOS本身就有Heiti TC吧。不过楷体就很明显了,宋体也不太明显。)
附上我做的一个简单的Demo。
http://download.csdn.net/detail/likid1412/4526971
(ps:由于黑体的字体文件太大,所以就只加了楷体和宋体,项目中没有的那两个文件请自行删除吧。)
- IOS添加自定义字体
- IOS添加自定义字体
- IOS添加自定义字体
- IOS 添加自定义 字体
- IOS添加自定义字体
- ios 添加自定义字体
- ios添加自定义字体
- iOS添加自定义字体
- iOS 添加自定义字体
- ios如何添加自定义字体
- ios开发 添加自定义字体
- ios如何添加自定义字体
- ios开发 添加自定义字体
- iOS如何添加自定义字体
- iOS中添加自定义字体
- iOS中添加自定义字体
- IOS 添加自定义字体font
- iOS中如何添加自定义的字体
- 4.多对一(用户对组):测试
- TYVJ1232最短路(SPFA+连接表)
- 实时系统基本概念(RTOS)
- sizeof(class)分析
- iPhone开发之利用ModalViewController切换View
- IOS添加自定义字体
- ios scroll view 原理
- HTML+CSS编码的一些经验
- 停一停,是为了走的更远---2012年上半年个人总结
- android之TabWidget选项卡
- matlab 多维矩阵的维度调整
- 在SQL中实现数组
- epoll基本原理及使用框架
- VS2010下编译thrift之学习文档一