JJFontFit
支持 pod 导入
pod 'JJFontFit', '~> 1.0.0'
特性:
1、全自动化,支持自定义字体,不需要手动逐个适配。
2、有两种适配样式: 1)、标准样式:根据屏幕比例自动适配。2)、自定义样式:用户可以根据屏幕来设置每个屏幕统一的字体。
3、支持 UILabel、UIButton、UITextField,UITextView 类以及自定义的继承类。
4、支持某些类和某个对象不适配。
5、关闭某个对象的适配,支持手动代码和 storyboard 两种设置。
6、支持不分屏幕尺寸,统一修改字体大小。
使用说明
将 JJFontFit 文件夹拖入项目中或通过 pod 方式将其导入到项目中,就默认已经开启了文字适配(默认使用标准样式,默认标准屏幕尺寸 4.7),如需进行其他设置,需要导入 JJFontFit.h 头文件。
1、使用标准样式,调用以下方法,设置标准屏幕的宽(也就是字体不变的屏幕宽)
+ (void)fontFitWithNormalScreenWidth:(CGFloat)width
2、使用自定义样式,用户根据屏幕大小,调用以下方法,设置不同的 addSize 值,addSize=0 时,该屏幕为标准屏幕
+ (void)fontFitWithAddSize:(CGFloat)addSize;
3、自定义的以“UI”、“_UI”开头的继承 UILabel 或 UIButton 类,默认不支持字体适配,若要支持字体适配需要手动调用以下方法,如果你传入的是父类名,它的子类也会支持文字适配
+ (void)addHasPrefixUIWithLabelClass:(NSArray<NSString *>*)labelClass buttonClass:(NSArray<NSString *>*)buttonClass;
4、关闭整个适配的类(包括它的子类),只需要调用以下方法,传入类名
+ (void)closeFontFitWithClass:(NSArray<NSString *>*)closeClass;
5、用代码关闭某个对象的文字适配,将 isNotFontFit 设置为 YES
self.label.isNotFontFit = YES;
6、在 storyboard 或 xib 上关闭某个对象文字适配,将 Is Not Font Fit 设置为 On
7、不分屏幕尺寸,统一修改字体大小,直接调用以下方法
+ (void)fontFitWithAddSize:(CGFloat)addSize;
8、JJFontFit 设置,通常放在程序入口 AppDelegate 设置,如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[self setupFontFitWithNormal];
//[self setupFontFitWithCustom];
return YES;
}
//标准样式
- (void)setupFontFitWithNormal{
//以4.7寸手机屏幕为基准
[JJFontFit fontFitWithNormalScreenWidth:375.0];
//设置支持自定义以“UI”,“_UI”开头的继承UILabel或UIButton类,它的子类也会支持适配
[JJFontFit addHasPrefixUIWithLabelClass:@[@"UIJJLabel",@"_UIJJLabel"] buttonClass:@[@"UIJJButton"]];
//关闭适配的类,它的子类也会被关闭
[JJFontFit closeFontFitWithClass:@[@"JJTextField_1"]];
}
//自定义样式
- (void)setupFontFitWithCustom{
CGFloat width = [UIScreen mainScreen].bounds.size.width;
if (width == 320) {//4.0寸手机
//在原来字体的大小上-2
[JJFontFit fontFitWithAddSize:-2];
}else if (width == 375){//4.7寸手机
//字体大小不变
[JJFontFit fontFitWithAddSize:0];
}else if(width == 414){//5.5寸手机
//在原来字体的大小上+2
[JJFontFit fontFitWithAddSize:2];
}else{
//字体大小不变
[JJFontFit fontFitWithAddSize:0];
}
//设置支持自定义以“UI”,“_UI”开头的继承UILabel或UIButton类,它的子类也会支持适配
[JJFontFit addHasPrefixUIWithLabelClass:@[@"UIJJLabel",@"_UIJJLabel"] buttonClass:@[@"UIJJButton"]];
//关闭适配的类,它的子类也会被关闭
[JJFontFit closeFontFitWithClass:@[@"JJTextField_1"]];
}
其他
QQ 交流群:680365301