文档章节

iOS字体适配

mouos
 mouos
发布于 09/18 23:17
字数 205
阅读 12
收藏 0
iOS

本处使用375为设计标准

1.使用运行时方法

#import "UIFont+AdjustFont.h"
#import <objc/runtime.h>

@implementation UIFont (AdjustFont)

+ (void)load {
    Method newMethod = class_getClassMethod([self class], @selector(adjustFont:));
    Method method = class_getClassMethod([self class], @selector(systemFontOfSize:));
    //Method method = class_getClassMethod([self class], @selector(systemFontOfSize:weight:));
    method_exchangeImplementations(newMethod, method);
}

+ (UIFont *)adjustFont:(CGFloat)fontSize {
    UIFont *newFont = nil;
    newFont = [UIFont adjustFont:fontSize * [UIScreen mainScreen].bounds.size.width / 375];
    return newFont;
}

@end

2.使用宏定义方法

#define SCREEN_SIZE                            [[UIScreen mainScreen] bounds]
#define SCREEN_WIDTH                           [[UIScreen mainScreen] bounds].size.width
#define SCREEN_HEIGHT                          [[UIScreen mainScreen] bounds].size.height

#define ADJUST_SIZE(value)                      (SCREEN_WIDTH == 375 ? value : value * SCREEN_WIDTH / 375)

#define SYSTEM_FONT(value)                      [UIFont systemFontOfSize:ADJUST_SIZE(value)]
#define SYSTEM_FONT_NAME(name,value)            [UIFont fontWithName:name size:ADJUST_SIZE(value)]

///苹方-简 常规体
#define SYSTEM_FONT_PINGFANG_SC_REGULAR(value)  [UIFont fontWithName:@"PingFangSC-Regular" size:ADJUST_SIZE(value)]
///苹方-简 中黑体
#define SYSTEM_FONT_PINGFANG_SC_MEDIUM(value)   [UIFont fontWithName:@"PingFangSC-Medium" size:ADJUST_SIZE(value)]
///苹方-简 中粗体
#define SYSTEM_FONT_PINGFANG_SC_SEMIBOLD(value) [UIFont fontWithName:@"PingFangSC-Semibold" size:ADJUST_SIZE(value)]

 

© 著作权归作者所有

mouos
粉丝 1
博文 263
码字总数 137404
作品 0
其它
私信 提问
迈绝伦团队工作汇总

项目负责人:余志恒 up_java后台:无 mz_java后台:在做抢客推送接口以及规范数据库目录树完成 bwk后台:无 项目负责人:季景胜 up_Android:无 upzg_Android:无 mzqk_Android:UI界面优化 ...

风化的骆驼
2016/12/29
2
0
定制iOS 7中的导航栏和状态栏

由于种种原因,申请了一个开源中国的帐号,也许会由于我的不耐心,不会亲自去一步步的写博文,但准备把自己看到的好的,都转载过来,就当时资源的存储,也算是一种推广吧。 iOS 7 教程:定制...

谁家的阿毛
2013/11/21
1K
0
iOS神级浏览器Alook端午节限免

前言 今天在 v2ex.com 论坛上看到有用户推荐iOS 端 Alook 浏览器,而且评价很不错,目前正在端午节限时免费中,分享给使用 iOS 的小伙伴们。 Alook Alook 浏览器最具特色的功能是 在线音/视频...

己立
2018/06/17
0
0
全屏手势返回插件 - BBGestureBack

BBGestureBack Full screen return gesture(全屏手势返回 滑动返回 pop 动画效果) iOS 侧滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 现在市场上的主流app都有用到各种侧...

Bonway
2018/05/30
338
0
iOS12、iOS11、iOS10、iOS9常见适配

一、iOS12(Xcode10) 1.1、升级Xcode10后项目报错 不允许多个info.plist Xcode10是默认选中的最新的New Build System(Default),在这个编译系统的环境下,不允许多个info.plist 解决办法一:...

walking_yxf
02/11
43
0

没有更多内容

加载失败,请刷新页面

加载更多

Phpstorm2018 永久激活

1、安装phpstorm,安装包请自行官网下载 http://www.jetbrains.com/phpstorm/download/ 2、下载JetbrainsCrack.jar文件,存放至你的phpstorm执行文件同级目录下 下载JetbrainsCrack.jar 提取...

happyfish319
44分钟前
9
0
谈一谈Android进程间通信的几种方式

###来看一下Android中除了AIDL还有哪些进程间通信的方式: 1、Bundle Bundle实现了Parcelable,所以在Android中我们可以通过Intent在不同进程间传递Bundle数据。 但是在Intent 传输数据的过程...

二营长的意大利炮手
45分钟前
9
0
互联网薪资“高开低走”,你的能力是否真的可以匹配高薪?

对于国内外主流互联网大厂,技术出身似乎已经成为各大掌门人的必备标签。谷歌 CEO 桑达尔·皮查伊、马克·扎克伯格、李彦宏、马化腾、雷军等等皆为技术人出身,都曾参与了公司内部重要产品的...

Java技术剑
46分钟前
12
0
java 多线程

线程声明周期 线程的五个状态:新建,就绪,运行,阻塞,死亡。 其中就绪和运行两个状态客户互相转换,但运行到阻塞,阻塞到就绪,只能单向转换。 刚new出的线程就是【新建】状态,调用start...

雷开你的门
48分钟前
17
0
构造器Constructor是否可被overrid

构造器不能被重写,不能用static修饰构造器,只能用public private protected这三个权限修饰符,且不能有返回语句。

无名氏的程序员
52分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部