阅读之前,先来欣赏一张图片
1、言归正传,改变字号可以有两种方法,一种是给UIFont添加分类,一种是给UILabel和UIButton添加分类,在UILabel加载的时候改变设置字号,下面就分别介绍这两种方法的实现
1.1 首先介绍给UIFont添加分类的方法
The first step:创建UIFont的分类,如下图
second:命名
2、UIFont+Setting.h 下
创建一个方法
#import <UIKit/UIKit.h>
@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 <UIKit/UIKit.h>
@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 如图,设置页面的效果图如下
滑动调节按钮即可调节字体大小,下图为字号最大时,其他页面的效果图,至此,用给UIFont添加分类的方法,实现全局调节字号即可实现了
接下来还有一种全局改变字号的方法,将在下一篇文章中介绍
iOS 全局改变字号(二)http://www.jianshu.com/p/9f7ebb232bef