iOS 全局改变字号(一)

阅读之前,先来欣赏一张图片

iOS 全局改变字号(一)_第1张图片
meng

1、言归正传,改变字号可以有两种方法,一种是给UIFont添加分类,一种是给UILabel和UIButton添加分类,在UILabel加载的时候改变设置字号,下面就分别介绍这两种方法的实现

1.1 首先介绍给UIFont添加分类的方法

  The first step:创建UIFont的分类,如下图
iOS 全局改变字号(一)_第2张图片
选择Objective-c File
second:命名
iOS 全局改变字号(一)_第3张图片
命名为Setting

2、UIFont+Setting.h 下

创建一个方法

#import 

@interface UIFont (Setting)
// 设置字体的方法,代替系统的systemFontOfSize
+ (UIFont *)setFontWithSize:(CGFloat)size;

@end

UIFont+Setting.m下

#import "UIFont+Setting.h"

@implementation UIFont (Setting)

+ (UIFont *)setFontWithSize:(CGFloat)size{
// 取出存在本地的字号
    CGFloat fontSize = [[NSUserDefaults standardUserDefaults] floatForKey:@"fontSize"];
    CGFloat fontS = 2 * fontSize * size;
    UIFont *myFont = [UIFont systemFontOfSize:fontS+size];
    return myFont;
}
@end

3、在设置界面,创建一个滑动控制开关(UISlider)用于滑动控制字号

SettingViewController.h

#import 

@interface SettingViewController : UIViewController

@end

SettingViewController.m


#import "SettingViewController.h"
#import "UIFont+Setting.h"

@interface SettingViewController (){
    UISlider *slider; // 滑动按钮
    UILabel * testLabel;   // 测试label
}
@end

@implementation SettingViewController

- (void)viewDidLoad {
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor whiteColor];
// 设置页面的搭建   
    [self setupUI];
}

- (void)setupUI{
// 滑动按钮的设置
    slider = [[UISlider alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 30)];
    [self.view addSubview:slider];
     [slider addTarget:self action:@selector(valueChange) forControlEvents:UIControlEventValueChanged];
    slider.value = [[NSUserDefaults standardUserDefaults] floatForKey:@"fontSize"];
    
// 测试字体的设置
    testLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 150, [UIScreen mainScreen].bounds.size.width, 100)];
    testLabel.text = @"这是测试字体";
    testLabel.font = [UIFont setFontWithSize:10];
    testLabel.textAlignment = NSTextAlignmentCenter;
    testLabel.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:testLabel];    
}

- (void)valueChange{
// 改变字号,将字号存在本地
    [[NSUserDefaults standardUserDefaults] setFloat:slider.value forKey:@"fontSize"];
    testLabel.font = [UIFont setFontWithSize:10];
    button.titleLabel.font = [UIFont setFontWithSize:8];

// 这里其实可以用通知,本文就不介绍使用通知的方法了,
 //  [[NSNotificationCenter defaultCenter] postNotificationName:@"changeFont" object:nil];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

@end

3.1 如图,设置页面的效果图如下

iOS 全局改变字号(一)_第4张图片
设置页面的效果图

滑动调节按钮即可调节字体大小,下图为字号最大时,其他页面的效果图,至此,用给UIFont添加分类的方法,实现全局调节字号即可实现了


iOS 全局改变字号(一)_第5张图片
主页的效果图

接下来还有一种全局改变字号的方法,将在下一篇文章中介绍

iOS 全局改变字号(二)http://www.jianshu.com/p/9f7ebb232bef

你可能感兴趣的:(iOS 全局改变字号(一))