关于iPhone设备不同显示尺寸适配的一些方法

简介: 关于iPhone设备不同显示尺寸适配的一些方法     ------关于适配的理解------ 1、什么是适配?     适配是对不同硬件和系统软件的适应,硬件包括屏幕显示,处理器,内存等等(目前主要是屏幕适配,iPhone 6s新增了3D Touch功能,其他硬件功能并没有实质性的改变),软件主要是不同iOS系统(有些在最新系统(通常会尽量向下兼容)不再支持的方法都需要做一些判断)。
+关注继续查看

关于iPhone设备不同显示尺寸适配的一些方法

 

 

------关于适配的理解------

1、什么是适配?

    适配是对不同硬件和系统软件的适应,硬件包括屏幕显示,处理器,内存等等(目前主要是屏幕适配,iPhone 6s新增了3D Touch功能,其他硬件功能并没有实质性的改变),软件主要是不同iOS系统(有些在最新系统(通常会尽量向下兼容)不再支持的方法都需要做一些判断)。

2、为什么要适配?

     适配是为了兼容不同的设备。

3、屏幕适配主要有哪些方式?

    (1)等比例适配(所有视图按屏幕大小缩放,相对位置不变):a、纯代码;b、代码+storyboard(不使用自动布局);c、代码+storyboard(使用自动布局)。

    (2)自由适配(主要使用自动布局):由于同一布局在不同大小的屏幕上显示效果不一样,如果仅仅是等比缩放,有时显示效果差强人意;在显示内容尺寸符合操作习惯(这个看自己咋想)的情况下,屏幕大小最大的区别是屏大显示内容多(如浏览新闻等,除了只有一些固定图片、控件等的简洁界面),a、约束内容的间距及相对大小;b、约束内容的宽高及相对位置;c、约束内容的间距、宽高。

 

------适配的一些方法------

情况一

(等比适配,代码+storyboard,不使用自动布局,建议用iPhone6的尺寸布局),通过获取屏幕尺寸,重定义CGRectMake,更新所有视图及其子视图的frame,完成等比适配。注意字体、图片,以及tableView、collectionView。

1、——————AppDelegate.h添加:

+ (void)ergodicView:(UIView *)view;

 

2、——————AppDelegate.m添加:

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

#define ScreenWidth [UIScreen mainScreen].bounds.size.width

#define ScreenScaleX (ScreenWidth/375)//相对于苹果6屏幕

#define ScreenScaleY (ScreenHeight/667)

 

//按屏幕自动适配storyBoard所有视图

+ (void)ergodicView:(UIView *)view{

    

    if (view.subviews.count != 0) {

        for (UIView *temp in view.subviews) {

            temp.frame = CGRectMake1(temp.frame.origin.x, temp.frame.origin.y, temp.frame.size.width, temp.frame.size.height);

            [self ergodicView:temp];

        }

    }

}

 

//修改CGRectMake

CG_INLINE CGRect

CGRectMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

{

    CGRect rect;

    rect.origin.x = x * ScreenScaleX;

    rect.origin.y = y * ScreenScaleY;

    rect.size.width = width * ScreenScaleX;

    rect.size.height = height * ScreenScaleY;

    return rect;

}

 

--------------------

情况二

使用autolayout布局后,可重新设置视图的frame。等viewDidLoad加载完后,再延迟改变视图的frame,不延迟会被storyboard重新设置。也可以在viewDidLayoutSubviews或viewDidAppear重新设置frame

目录
相关文章
|
2月前
|
iOS开发
IPhone X 以上 ”下巴“ 的适配
IPhone X 以上 ”下巴“ 的适配
67 0
|
4月前
|
Web App开发 网络虚拟化 iOS开发
如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)
如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)
|
存储 编解码 API
iPhone X + iOS 11 适配指南(下)
iPhone X + iOS 11 适配指南(下)
244 0
iPhone X + iOS 11 适配指南(下)
|
传感器 移动开发 安全
iPhone X + iOS 11 适配指南(上)
iPhone X + iOS 11 适配指南(上)
182 0
iPhone X + iOS 11 适配指南(上)
|
开发工具 iOS开发
支付SDK适配iPhone X 公告
尊敬的蚂蚁金服开放平台合作伙伴:     苹果已于近期发布最新机型iPhone X,该机型的视觉和页面布局较以往机型有调整。 目前,iOS端的支付宝App支付SDK已适配包括iPhone X在内的iPhone机型,并上传至蚂 蚁金服开放平台,请各位合作伙伴更新该支付SDK,确保用户可以获得最佳的使用体验。
317 0
|
iOS开发
iOS App Icon启动图尺寸配置适配iPhone XS XR XS Max等
前言 近期在开发新项目, 然后针对 App Icon 与 App LaunchScreen 都需要重新切一套, 需要把相应尺寸大小跟 UI 说明一下, 加上最近刚发布的我 iPhone XS XR XS Max都需要进行统一适配,同时为了让自己以及 UI 同事能更好的去了解 iPhone 不同尺寸特意整理了一下。
3197 0
|
iOS开发
iOS版微信6.5.21发布 适配iPhone X
昨日,iOS版微信迎来v6.5.21正式版发布,本次升级主要适配iPhone X,在聊天中查找聊天内容时,可以查找交易消息。可以给聊天中的消息设置日期提醒。上一个正式版v6.5.16发布于9月13日,时隔51天又迎来了更新。
1174 0
|
Web App开发 移动开发 前端开发
H5 页面适配所有 iPhone 和安卓机型的六个技巧
目前,很多APP设计师小伙伴已经开始转向H5前端开发啦,但是解决所有iPhone和安卓机型的适配问题是我们的重中之重。无论是设计APP还是写前端H5.都是要考虑移动端的兼容性。 25学堂今天跟大家来回顾一下H5页面去适配所有iPhone和安卓机型的一些技巧和办法。
1886 0
相关产品
云迁移中心
推荐文章
更多