1.先建立一个UILabel的分类

导入#import <objc/runtime.h>头文件

2.在.m文件中写入如下代码

//不同设备的屏幕比例(当然倍数可以自己控制)

#define IPHONE_HEIGHT  [UIScreen mainScreen].bounds.size.height

#define SizeScale ((IPHONE_HEIGHT > 568) ? IPHONE_HEIGHT/568 : 1)

@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);

Method cmp = class_getInstanceMethod([self class], @selector(initWithFrame:));

Method myCmp = class_getInstanceMethod([self class], @selector(myInitWithFrame:));

method_exchangeImplementations(cmp, myCmp);

}

- (id)myInitWithCoder:(NSCoder*)aDecode{

[self myInitWithCoder:aDecode];

if (self) {

//部分不像改变字体的 把tag值设置成333跳过

if(self.tag != 333){

CGFloat fontSize = self.font.pointSize;

self.font = [UIFont systemFontOfSize:fontSize * SizeScale];

NSLog(@" label的大小 == %f", self.font.pointSize);

}

}

return self;

}

- (id)myInitWithFrame:(CGRect)frame{

[self myInitWithFrame:frame];

if(self){

CGFloat fontSize = self.font.pointSize;

self.font = [UIFont systemFontOfSize:fontSize * SizeScale];

NSLog(@" label的大小 == %f", self.font.pointSize);

}

return self;

}

@end

3.在调用文件中导入分类

#import "ViewController.h"

#import "UIButton+myFont.h"

@interface ViewController ()

/*注释*/

@property (nonatomic,strong)UILabel *label;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self.view addSubview:self.label];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)viewWillAppear:(BOOL)animated

{

NSLog(@"%@",self.label.font);

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

- (UILabel *)label{

if (!_label) {

_label = [[UILabel alloc]initWithFrame:CGRectMake(50, 100, 100, 30)];

//        _label.font = [UIFont systemFontOfSize:17];

_label.tag = 32;

_label.text = @"这是测试文字";

}

return _label;

}

@end

iOS -不同模拟器字体适配的更多相关文章

  1. iOS 4s-6Plus屏幕自动适配及颜色转换为十六进制

    iOS各种屏幕自动适配及颜色转换为十六进制 ★★★XLJMatchScreen自动适配屏幕★★★ 支持pod导入 pod 'XLJScreenMatching', '~> 1.0.3' 如果发现 ...

  2. iOS 向模拟器里添加照片

    iOS 向模拟器里添加照片 模拟器里Photos最开始时是没有照片的,有时我们做Demo时需要Photos里面的照片做测试,这时就需要把Mac上的照片导入到模拟器里.步骤如下: 1,打开模拟器 2,选 ...

  3. iOS 中的字体预览

    要预览iOS的各种字体的效果,可以访问http://iosfonts.com

  4. iOS完整预装字体清单

    iOS完整预装字体清单:http://iosfonts.com/

  5. Android 字体适配方案

    开发过程中,按照UI设计尺寸做好UI页面,当用户自定义自己的手机字体大小之后UI完全没法看了,这个时候就在想让app字体大小始终一致就好了 下面看一下,出现的问题和解决方案     做个简单的例子,先 ...

  6. iOS Simulator 模拟器 与 Android Emulator 仿真器:为什么叫不同的英文名字?(待补充)

    iOS Simulator 模拟器 与 Android Emulator 仿真器:为什么叫不同的英文名字?(待补充)

  7. 显示iOS所有系统字体

    显示iOS所有系统字体 源码地址: https://github.com/YouXianMing/UI-Component-Collection 效果图: 便于你开发中寻找适合自己的字体, demo中 ...

  8. iOS WKWebview 网页开发适配指南

    iOS WKWebview 网页开发适配指南 微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们 ...

  9. iOS 多尺寸屏幕适配

    Point Point可以理解为iOS程序员眼中的大小单位.它是iOS操作系统中的抽象的概念. Rendered Pixels可以理解为UI设计师眼中的大小单位. Physical Pixels 设备 ...

随机推荐

  1. waitFor和waitForAny的实现

    waitFor和waitForAny的实现 在实现waitFor方法之前,我们先要搞明白下面这些问题: 1. waitFor方法的形参有限制吗? 没有!如果形参是Task类型,不应该启动Task,如果 ...

  2. hibernate配置jndi

    tomcat里的conf->context.xml <Resource name="mysql"     auth="Container" type ...

  3. 在PHP中如何连接到数据库

    首先我们先运行WampServer中的phpMyAdmin随即弹出phpMyAdmin页面   在弹出的页面中左边是数据库列表  右边是相应的设置 选择一个数据库  在里面创建一张数据表  注意创建数 ...

  4. Bootstrap 图像

    一般的样式 在我们讨论 Bootstrap 3 提供的定义图像样式的特殊的 class 之前,我们将看到 Bootstrap 3 提供的定义图像的一般的样式. img { border: 0; } 这 ...

  5. JAVA实例化class的三种方式

    不多说  直接上例子 package org.lxh.demo15.getclassdemo ; class X{ }; public class GetClassDemo02{ public sta ...

  6. XLink and XPoint

    XLink 定义在 XML 文档中创建超级链接的标准方法. XPointer 允许这些超级链接指向 XML 文档中的更多具体部分(片断). XLink XLink 是 XML 链接语言(XML Lin ...

  7. SZU:A25 Favorite Number

    Judge Info Memory Limit: 32768KB Case Time Limit: 10000MS Time Limit: 10000MS Judger: Number Only Ju ...

  8. iOS基础 - 触摸事件与手势识别

    一.iOS的输入事件 UIKit可识别三种类型的输入事件: 触摸事件 运动(加速计)事件 远程控制事件 二.UIEvent iOS中许多事件对象都是UIEvent类的实例,记录事件产生的时刻和类型 U ...

  9. window wamp下xhprof的安装使用,Graphviz配置

    在新的工作安排下来前赶紧把手上工作优化下,本来是靠xdebug+grindview来的,不过还是麻烦,就换上这个轻量级的性能测试了.网上搜的大多都是lamp环境下的,wamp下的倒是不多,而且不好用, ...

  10. Github官方app分析——用户身份验证模块

    这篇文章记述的是我对Giuhub官方app的用户身份验证模块的分析. Giuhub的官方app虽然是一个非常小众的程序,但是从程序的设计的角度看,这是一个非常优秀的项目.对于其用户身份验证模块,给我留 ...