Skip to content

JJFontFit一款全自动化文字适配库, 支持自定义字体, 多样式设置,可关闭某个对象或某个类设置,支持手动代码、storyboard、xib关闭对象的文字适配

License

Notifications You must be signed in to change notification settings

04zhujunjie/JJFontFit

Repository files navigation

JJFontFit

image

支持pod导入

pod 'JJFontFit', '~> 1.0.1'

特性:  

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、如果适配后,因为文字字体过大,导致文本显示不全,将jj_adjustsFontSizeToFitWidth属性设置为YES

[JJFontFit shareFontFit].jj_adjustsFontSizeToFitWidth = YES;

7、在storyboard或xib上关闭某个对象文字适配,将Is Not Font Fit设置为On

image

8、不分屏幕尺寸,统一修改字体大小 ,直接调用以下方法

+ (void)fontFitWithAddSize:(CGFloat)addSize;

9、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"]];
}

版本更新说明

版本1.0.1:
新增jj_adjustsFontSizeToFitWidth属性,用来解决在适配过程中,因为文字字体过大,导致文字显示不全

About

JJFontFit一款全自动化文字适配库, 支持自定义字体, 多样式设置,可关闭某个对象或某个类设置,支持手动代码、storyboard、xib关闭对象的文字适配

Resources

License

Stars

Watchers

Forks

Packages

No packages published