iOS 全局改變字號(一)

閱讀之前,先來欣賞一張圖片

meng

1、言歸正傳,改變字號可以有兩種方法,一種是給UIFont添加分類,一種是給UILabel和UIButton添加分類,在UILabel加載的時候改變設置字號,下面就分別介紹這兩種方法的實現

1.1 首先介紹給UIFont添加分類的方法

  The first step:創建UIFont的分類,如下圖
選擇Objective-c File
second:命名
命名為Setting

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.lxweimin.com/p/9f7ebb232bef

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容