美文网首页
iOS 字体自适应屏幕大小

iOS 字体自适应屏幕大小

作者: ZPCoder | 来源:发表于2016-11-01 09:19 被阅读2398次

在项目的开发中,其他控件不管在IB里边还是纯代码形式中都能很简单的做到自适应屏幕的大小,但往往会忽略掉字体大小的适应,我们的UI是以6sPlus屏幕为基准设计的页面,我前期只是做了控件的自适应,以为字体影响不大,后来在5s上一试,简直惨不忍睹。在网上找了好多方法,感觉都不好用,被逼无奈(人都是逼出来的)只能自己想一个办法了,没想到自己设计的方法简单好用(自认为,大神勿喷。。),好了,不说废话了,showTime!

先说一下思路。
一、先建一个UIVIewController的类目。(没错就是类目)
类目的.h文件

       @interface UIViewController (baseMethod)//括号里边的是我取的类目名字
//自适应宽度的
- (CGFloat)autoScaleW:(CGFloat)w;
//自适应高度的
- (CGFloat)autoScaleH:(CGFloat)h;

@end

.m文件


#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
@interface UIViewController ()

@end

@implementation UIViewController (baseMethod)
#pragma mark - ScaleSize

//说明一下我是以6sPlus为设计基准的,所以是除以414和736 的 ,你们以哪个屏幕大小设计的,就除以哪个屏幕的宽高。
//相信里边的计算公式都能看懂吧(不懂的转行吧。。。)
//想要字体的自适应用下边的任何一个方法都行
//其实不止的字体的适应,以前计算位置、大小的数子都可以用这个来转换(具体怎么用后边会说)
- (CGFloat)autoScaleW:(CGFloat)w{
    
            return w * (kScreenWidth / 414.0f);
       
  }

- (CGFloat)autoScaleH:(CGFloat)h{
       return h * (kScreenHeight / 736.0f);
    
}


二、把类目的头文件导入.pch文件中,导入之后,所有的UIViewcontroller都可以用类目里边的方法了(别说不懂、不懂的可以查查。pch文件的作用和创建方法。非常好用!!)

//类目
#import "UIViewController+baseMethod.h"
#import "UITableViewCell+baseMethod.h"
#import "UIView+baseMethod.h"

上边有其他两个头文件是我创建的在UIView里边和cell里边用的。创建方法和我前面说过的UItableView的类目方法一样,里边的方法也一样,很简单的
三、具体用法了

cmLabel.font = [UIFont systemFontOfSize:autoScaleW(25)];

看到这里你们懂了没有。有什么问题可以找我讨论。(其实类目很强大的、很多方法都可以创建在类目里边。期待你的发现)
在之后的日子里、我会把我在开发中遇到问题和解决方法都整理出来、欢迎大家的讨论和提出意见!☺

谢谢

相关文章

网友评论

      本文标题:iOS 字体自适应屏幕大小

      本文链接:https://www.haomeiwen.com/subject/uroruttx.html