原始的系统字体,在挑剔的人面前,就显得应付不了.
这个时候参考了sohu新闻中使用的字体,据说是微软雅黑.
下面是使用方法:
1.网上搜索字体文件(后缀名为.ttf,或.odf)
2.把字体库导入到工程的resouce中
3.在程序viewdidload中加载一下一段代码
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] );
}
}
4.假如你加入的字体为微软雅黑,这时可以在NSLog中看到MicrosoftYaHei
5. 然后在你的工程的Info.plist文件中新建一行(Add Row),添加key为:UIAppFonts,类型为Array或Dictionary都行;在UIAppFonts下再建立一个键值对,key 为:Item 0,添加Value为XXX.ttf(你字体的名字,string型),可以添加多个
6.在你的项目里要用字体的时候 xx.font = [UIFont fontWithName:@"MicrosoftYaHei" size:20.0],这样就可以了。
为了便于在应用统一替换,写了便利UILabel的方法:
这样是做是为了保证原始的字体大小不变化,直接更换字体为雅黑.
//使用自定义的雅黑字体
+ (UIFont *)fontYaHei:(CGFloat)fontSize
{
UIFont *font=[UIFont fontWithName:@"MicrosoftYaHei" size:fontSize];
return font;
}
//快捷函数
+ (void)changeLabelFont:(UILabel *)lb
{
CGFloat orgFontSize=lb.font.pointSize;
[lb setFont:[Tools fontYaHei:orgFontSize]];
}
//替换当前视图下,所有子视图为lb的字体为雅黑
+ (void)changeAllLabelFontInView:(UIView *)view
{
for (UIView *subview in view.subviews) {
if ([subview isKindOfClass:[UILabel class]]) {
[Tools changeLabelFont:(UILabel *)subview];
}
}
}