ios设置中性黑体_iOS 使用自定义字体 - 苹方字体

本文介绍了如何在iOS项目中自定义添加并使用苹方字体,包括将字体文件引入项目、配置info.plist以及通过代码设置字体。即便在iOS 9以下的系统也能使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不是系统已经自带苹方字体了为什么还要自定义呢?因为苹方字体是在iOS 9引入的,所以如果要支持iOS 9以下都要手动引入苹方字体。

添加苹方字体到项目中

获取苹方字体,Command+G输入/System/Library/Fonts/PingFang.ttc

直接拖到将PingFang.ttc文件拖到项目中

在 info.plist文件中添加Fonts provided by application,并设置字体包名称

937490-b46bb7fd12d74358.png

我在iOS 8系统的模拟器中没有在Info.plist中添加Fonts provided by application,也已经可以正常使用苹方字体了

获取当前系统支持的字体

for (NSString *fontFamilyName in UIFont.familyNames) {

NSLog(@"familyName:%@", fontFamilyName);

for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {

NSLog(@"fontName:%@", fontName);

}

}

打印结果省略了苹方字体以外的字体

/**

……

2018-04-28 11:07:52.217401+0800 QYLY[5900:238352] familyName:PingFang TC

2018-04-28 11:07:52.218150+0800 QYLY[5900:238352] fontName:PingFangTC-Regular

2018-04-28 11:07:52.218609+0800 QYLY[5900:238352] fontName:PingFangTC-Thin

2018-04-28 11:07:52.219340+0800 QYLY[5900:238352] fontName:PingFangTC-Medium

2018-04-28 11:07:52.220841+0800 QYLY[5900:238352] fontName:PingFangTC-Semibold

2018-04-28 11:07:52.222403+0800 QYLY[5900:238352] fontName:PingFangTC-Light

2018-04-28 11:07:52.223328+0800 QYLY[5900:238352] fontName:PingFangTC-Ultralight

……

2018-04-28 11:07:52.299506+0800 QYLY[5900:238352] familyName:PingFang HK

2018-04-28 11:07:52.300103+0800 QYLY[5900:238352] fontName:PingFangHK-Medium

2018-04-28 11:07:52.300944+0800 QYLY[5900:238352] fontName:PingFangHK-Thin

2018-04-28 11:07:52.301597+0800 QYLY[5900:238352] fontName:PingFangHK-Regular

2018-04-28 11:07:52.302162+0800 QYLY[5900:238352] fontName:PingFangHK-Ultralight

2018-04-28 11:07:52.302652+0800 QYLY[5900:238352] fontName:PingFangHK-Semibold

2018-04-28 11:07:52.303029+0800 QYLY[5900:238352] fontName:PingFangHK-Light

……

2018-04-28 11:07:52.423305+0800 QYLY[5900:238352] familyName:PingFang SC

2018-04-28 11:07:52.423714+0800 QYLY[5900:238352] fontName:PingFangSC-Medium

2018-04-28 11:07:52.424151+0800 QYLY[5900:238352] fontName:PingFangSC-Semibold

2018-04-28 11:07:52.424397+0800 QYLY[5900:238352] fontName:PingFangSC-Light

2018-04-28 11:07:52.424621+0800 QYLY[5900:238352] fontName:PingFangSC-Ultralight

2018-04-28 11:07:52.424934+0800 QYLY[5900:238352] fontName:PingFangSC-Regular

2018-04-28 11:07:52.425314+0800 QYLY[5900:238352] fontName:PingFangSC-Thin

……

*/

苹方字体怎么会有PingFang SC、PingFang TC、PingFang HK三种呢?对应的是苹方-简、苹方-繁、苹方-港,而且都有六种字重,具体可以在字体册中查看。

苹方-简 中黑体 PingFangSC-Medium

苹方-简 中粗体 PingFangSC-Semibold

苹方-简 细体 PingFangSC-Light

苹方-简 极细体 PingFangSC-Ultralight

苹方-简 常规体 PingFangSC-Regular

苹方-简 纤细体 PingFangSC-Thin

937490-5afaf5974290fddd.png

设置苹方字体

// 苹方字体,默认为PingFangSC-Regular

UIFont *font = [UIFont fontWithName:@"PingFangSC-Regular" size:14];

NSString *familyName = font.familyName;

NSString *fontName = font.fontName;

NSLog(@"familyName:%@\nfontName:%@", familyName, fontName);

/**

familyName:PingFang SC

fontName:PingFangSC-Regular

*/

扩展

每次都要输入字体名称比较麻烦,并且还要支持iOS 9以下,使用分类方法比较好。

#import

typedef NS_ENUM(NSInteger, FontWeightStyle) {

FontWeightStyleMedium, // 中黑体

FontWeightStyleSemibold, // 中粗体

FontWeightStyleLight, // 细体

FontWeightStyleUltralight, // 极细体

FontWeightStyleRegular, // 常规体

FontWeightStyleThin, // 纤细体

};

@interface UIFont (Ex)

/**

苹方字体

@param fontWeight 字体粗细(字重)

@param fontSize 字体大小

@return 返回指定字重大小的苹方字体

*/

+ (UIFont *)pingFangSCWithWeight:(FontWeightStyle)fontWeight size:(CGFloat)fontSize;

@end

#import "UIFont+Ex.h"

@implementation UIFont (Ex)

+ (UIFont *)pingFangSCWithWeight:(FontWeightStyle)fontWeight size:(CGFloat)fontSize {

if (fontWeight < FontWeightStyleMedium || fontWeight > FontWeightStyleThin) {

fontWeight = FontWeightStyleRegular;

}

NSString *fontName = @"PingFangSC-Regular";

switch (fontWeight) {

case FontWeightStyleMedium:

fontName = @"PingFangSC-Medium";

break;

case FontWeightStyleSemibold:

fontName = @"PingFangSC-Semibold";

break;

case FontWeightStyleLight:

fontName = @"PingFangSC-Light";

break;

case FontWeightStyleUltralight:

fontName = @"PingFangSC-Ultralight";

break;

case FontWeightStyleRegular:

fontName = @"PingFangSC-Regular";

break;

case FontWeightStyleThin:

fontName = @"PingFangSC-Thin";

break;

}

UIFont *font = [UIFont fontWithName:fontName size:fontSize];

return font ?: [UIFont systemFontOfSize:fontSize];

}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值