iOS自定义字体
来源:互联网 发布:中国石化加油卡淘宝 编辑:程序博客网 时间:2024/06/02 21:29
字体在哪?
Mac 有一款自带App叫做字体册. 打开这个应用以后,可以看到目前内置在系统中的字体,iOS支持显示的格式有两种,分别是otf 和ttf.
首选是otf.
如何配置?
第一步:
将要使用的字体拖动到项目中.
第二步:
在Info.plist中添加Fonts provided by application项,加入一个item值为刚刚添加的字体文件文件名.
如何使用?
使用时要注意,字体文件名称,并非真正使用时的名称.
真正的名称在字体册的查看某一字体的详细参数时可以看到.如下图:
或者根据字体文件在应用中的路径通过代码来获得(不是特别准,可能偶尔需要手动调整):
- NSString *fontPath = [[NSBundle mainBundle] pathForResource:fontFileNameArray[i] ofType:nil];
- NSURL *url = [NSURL fileURLWithPath:fontPath];
- CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)url);
- if (fontDataProvider == NULL)
- {
- break;
- }
- CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);
- CGDataProviderRelease(fontDataProvider);
- if (newFont == NULL)
- {
- break;
- }
- CFStringRef fontName = CGFontCopyFullName(newFont);
- NSString *fontNameString = (__bridge id)(fontName);
- if ([fontNameString isEqualToString:@"Yuppy SC Regular"]) {
- fontNameString = @"YuppySC-Regular";
- }
- [fontNameMDic setObject:fontNameString forKey:fontFileNameArray[i]];
- CFRelease(fontName);
- CGFontRelease(newFont);
以下代码可以遍历出目前在iOS系统中可以使用的字体名称
- NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
- NSArray *fontNames;
- NSInteger indFamily, indFont;
- for(indFamily=0;indFamily<[familyNames count];++indFamily)
- {
- NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
- fontNames =[[NSArray alloc]initWithArray:[UIFont fontNamesForFamilyName:[familyNames objectAtIndex:indFamily]]];
- for(indFont=0; indFont<[fontNames count]; ++indFont)
- {
- NSLog(@" Font name: %@",[fontNames objectAtIndex:indFont]);
- }
- }
总结:
唯一不好处是字体的数据包很占用App的体积. 这个问题,有待解决.
- iOS 设置字体 自定义字体
- iOS 设置字体 自定义字体
- iOS 设置字体 自定义字体
- ios下自定义字体
- IOS添加自定义字体
- IOS添加自定义字体
- ios 使用自定义字体
- IOS添加自定义字体
- iOS 自定义字体
- IOS 自定义字体
- IOS 添加自定义 字体
- iOS使用自定义字体
- IOS自定义字体
- iOS自定义字体
- IOS添加自定义字体
- iOS使用自定义字体
- ios 添加自定义字体
- iOS 自定义字体
- 给一个正整数N,打印NxN的蛇形矩阵(一) 之空间复杂度O(NxN)
- php中文字符串翻转
- 图像放缩之双线性内插值
- 网桥和交换机的工作原理及区别
- Android Please ensure that adb is correctly located at问题解决
- iOS自定义字体
- jdk6中的jps,jstack,jmap,jhat,jconsole命令
- oracle null备忘
- VirtualBox 的快捷键
- Java 菜单组件
- 实时数据库
- 利用mysql的binlog恢复数据
- 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
- 安装php的apc