iOS 下如何设置全局字体?
来源:互联网 发布:淘宝网贷口子 编辑:程序博客网 时间:2024/06/07 13:07
iOS 6
跟 iOS 7
的字体还是有点不一样的,有时候为了两者的统一,或者,应设计师的要求,界面中所有的 Label,Button 等都用自定义字体,一般来说,我们在初始化的时候就需要不断地添加冗余的代码来设置自己的字体。
UILabel *label = [[UILabel alloc] init];label.font = [UIFont fontWithName:@"myFont"];...
如果你的界面全部是代码实现的,而且项目初期就已经定下统一用什么字体了,这就不是什么难事。但是,试想,如果你的界面是由大量IB
实现的,而且用的是自定义的字体,在IB
中选都没法选;或是项目已经完成差不多了,上面要求统一改字体,那该如何是好?
其实利用objective-c
的动态性就可以轻松搞定。
Method swizzling
什么是Method Swizzling
请Google
之,这里只说明方法:
注意: 以下方法只用于全局修改由 Xib
加载的界面的 UIButton, UILabel的字体,其他的如UITextField等类似,新建Catogery就好,想修改代码生成的界面,修改 initWithCoder 为 init就好
#import <UIKit/UIKit.h>#import <objc/runtime.h>@interface UIButton (myFont) @end@interface UILabel (myFont) @end@implementation UIButton (myFont)+ (void)load{ Method imp = class_getInstanceMethod([self class], @selector(initWithCoder:)); Method myImp = class_getInstanceMethod([self class], @selector(myInitWithCoder:)); method_exchangeImplementations(imp, myImp);}- (id)myInitWithCoder:(NSCoder*)aDecode{ [self myInitWithCoder:aDecode]; if (self) { CGFloat fontSize = self.titleLabel.font.pointSize; self.titleLabel.font = <# Your Font Here #>; } return self;}@end@implementation UILabel (myFont)+ (void)load{ Method imp = class_getInstanceMethod([self class], @selector(initWithCoder:)); Method myImp = class_getInstanceMethod([self class], @selector(myInitWithCoder:)); method_exchangeImplementations(imp, myImp);}- (id)myInitWithCoder:(NSCoder*)aDecode{ [self myInitWithCoder:aDecode]; if (self) { CGFloat fontSize = self.font.pointSize; self.font = <# Your Font Here #>; } return self;}@end
点赞
0 0
- iOS 下如何设置全局字体?
- iOS 下如何设置全局字体?
- ios app全局字体设置
- 10.如何设置全局字体
- 设置Swing全局字体
- Qt---设置全局字体
- Qt 设置全局字体
- iOS 更改全局字体
- iOS 全局修改字体
- IOS设置全局的导航图片和字体颜色
- iOS的UIFont如何设置字体
- iOS如何设置状态栏字体颜色
- iOS UIButton如何设置字体居中对齐
- 设置Swing的全局字体
- Java应用程序设置全局字体
- Android app全局字体设置
- WPF设置全局字体和字体嵌入
- iOS 设置字体 自定义字体
- Hdu 5570 概率期望
- fastdfs学习笔记之安装
- 解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform问题
- 子数组的最大乘积
- 鸡兔同笼
- iOS 下如何设置全局字体?
- c标签 if else c标签 总结
- 简单选择排序
- 独木舟上的旅行
- 完美解决 Linux 下 Sublime Text 3中文输入
- Java & C++ 数组声明和使用语法对比
- 重排n^2宫问题
- C++入门(1)简单变量和数据类型
- mongodb数据库