本文转载至 http://jingyan.baidu.com/article/8cdccae97a5c2b315413cda9.html

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

分步阅读

随着苹果公司持续推出新产品,480x960的固定坐标时代悄然过去,iPhone6、iPhone6 plus的问世,无疑给了我们这些做iOS开发的,深刻的打击。坐标再也不能写成固定坐标了,但是随着发展AutoLayout和SizeClass的出现,无疑是一种福音,值得庆贺一点的是,iPhone6也好6plus也好,屏幕比例和iPhone5与5s比例都是一样的,相差一两像素,无伤大碍。今天笔者给大家推荐一种较为轻便的屏幕适配方法。这里笔者就给大家以iPhone工程为例,简单讲述一下。该方法只用在控件中的AutoSizing只勾选宽和高约束,其他约束去掉,即可实现iPhone5与iPhone6、iPhone6plus等比布局,进而实现简单适配。当然iPhone4 需要刷新布局高度。

工具/原料

  • Xcode6.0
  • Mac OS操作系统
  • 电脑
  • 三张图片

方法/步骤

  1. 首先,先创建一个简单地工程。如图。

    这里我们选择“Single View Application”工程。

    名字就叫“ZYScreenTest”。

    位置选择桌面就可以了。

  2. 我们在Main.storyboard中把“Use Auto Layout”和“Use Size Classes”选项勾掉,默认的是勾选上的。

    在把我们的ViewController尺寸调节成5s的尺寸或者4的尺寸都行,看个人习惯是在5s上做布局还是4上做布局。笔者这里就以5的屏幕给大家介绍。

    选中当前ViewController,中间的选项,进行XIB尺寸调整,这里可以根据习惯选择是3.5寸还是4寸等。

  3. 之后我们拖拽一个imageView,放在(110,50)的位置,尺寸设置为(100,100)。如图。

    再拖拽一个imageView,尺寸一样,位置放置在(110,240)的位置作对比。如图。

    我们的目的是随着屏幕变化,对应控件坐标宽高发生相应可控的变化,以达到屏幕适配的目的。

    修改两个ImageView背景颜色作为区分,修改两个ImageView的Autoresizing相同,都已第二个拖拽的imageView为准,选择居上,居右位置不变的约束。如图。

  4. 之后,我们给下面的imageView再AutoSizing添加如图约束。去掉上下左右约束,保留内部宽高约束。如图。

    好,用5模拟器运行。运行效果如图。会发现没有什么变化,因为我们毕竟是用5的屏幕布局的,所以在5上运行效果和我们布局的界面差不多的。如图。

  5. 接下来再用iPhone6plus 模拟器运行,如图。

    我们会发现上面的ImageView的autoSizing只添加向上向下约束坐标和宽高都没变,下边的ImageView坐标和宽高都相应的变化了,基本和我们刚才在iPhone5模拟器上运行的基本比例一样。但是两个控件之间的布局已经和我们在StoryBoard上的布局不一样了。

    我们给第一个ImageView添加同样约束,再在6plus模拟器上运行,如图,我们会发现其布局和我们在StoryBoard上布局一致。

  6. 也就是说在AutoSizing只添加宽高约束的控件,会按照屏幕比例放大。我们都知道iPhone6以上使用的是三倍图,好我们准备三张不同的图片,分别是原图,二倍图,三倍图。这里笔者就随便找三张图了,分别命名为“test.png”(100p*100px),"test@2x.png"(200*200px),“test@3x.png”(300*300px),用来判断分辨率,iPhone6plus和iPhone6默认使用的是@3x图片,iPhone5和5s以及4s使用的是@2x图片。这里是用来验证我们的适配。

    在“Images.xcassets”里面创建一个“New Image Set”,重命名为“test”,把我们刚才的三张图片拖进去。如图。

  7. 然后对我们刚才拖拽的imageView设置图片。设置图片,直接在“image”属性里面写我们刚才对ImageSet命的名字“test”。我们再用iPhone5模拟器运行,运行效果如图。我们看到5模拟器上运行加载的图片都是@2x图片,也就是二倍图。两个imageView都加载了,说明,我们在AutoSizing中只勾选宽高约束,不影响iPhone5界面布局。我们用iPhone6 plus模拟器运行。如图,说明约束也是不影响加载三倍图的。

  8. 接下来,我们进行如图布局,把第一个图片也进行AutoSizing中宽和高约束,去掉上下左右约束,放置同一排,再两个图片中间再添加一个红色的View,放置最上层,依然添加同样约束。如图。用6Plus模拟器运行。发现间距和相对位置和iPhone5上布局一直。

    故此,我们可以用这种方法进行界面布局,省去了用SizeClass和AutoLayout的困扰。

    步骤阅读

    END

注意事项

  • 如果是iPhone4布局,只用修改一下高度即可,iPhone4布局比例和iPhone5以上不同
  • 如果是到屏幕底端的列表,一定要再AutoSizing添加上向下约束。

转载于:https://www.cnblogs.com/Camier-myNiuer/p/4440965.html

iOS开发:iPhone6、6 plus适配相关推荐

  1. iOS开发-------- iPhone X代码适配 (齐刘海处理)

    升级了Xcode9,变化很大啊,先说大家一直关心的适配齐刘海吧.  这个东西好像出来之后 我QQ群里面iOS开发的很多人都炸了.确实这个齐刘海对我们开发者很不友好,往上xib的项目适配文章已经有了,但 ...

  2. iOS开发 国际化/多语言适配

    史上最详细的多语言本地化 iOS中,国际化适配,大概有下面几种情况需要适配. 1,App名称/图标本地化 2,启动页本地化 3,代码中字符串本地化 4,xib/storyboard本地化 5,图片的本 ...

  3. IOS开发:尺寸和适配

    原文:https://blog.csdn.net/future_one/article/details/79465656 iPhone设备 物理分辨率是硬件所支持的,逻辑分辨率是软件可以达到的. 代数 ...

  4. iOS开发~WKWebView白屏适配

    WKWebView虽好,但白屏问题也很苦恼,下面分享一下自己解决问题的过程. 公司项目使用Cordova框架,做原生项目嵌入H5,业务复杂了以后,H5资源也越来越大,占用内存越来越多,加载也越来越慢, ...

  5. iPhone6/6S的适配

    自从苹果出了大屏iPhone后,iOS开发也要做适配了,想必Android程序员正在偷着乐呢;) 这里大概总结下这几天了解到的大屏适配的注意事项. 启用高分辨率模式 从Xcode6 GM版本开始,模拟 ...

  6. iOS开发之绝对布局和相对布局(屏幕适配)

    在IOS的UI设计中也有绝对定位和相对定位,和我们的web前端的绝对定位和相对定位有所不同但又有相似之处.下面会结合两个小demo来学习一下我们IOS开发中UI的绝对定位和相对定位.在前面的博客中所用 ...

  7. iOS开发技巧 - Size Class与iOS 8多屏幕适配(一)

    0. 背景: 在iOS开发中,Auto Layout(自动布局)能解决大部分的屏幕适配问题. 但是当iPhone 6和iPhone 6 Plus发布以后, Auto Layout已经不能解决复杂的屏幕 ...

  8. IOS开发基础之屏幕组件适配添加约束

    IOS开发基础之屏幕组件适配添加约束 使得横屏显示也能自动适配 对齐我们可以按住Ctrl键,把控件连线至view中 如果我们不小心添加错了.可以清除掉约束 具体约束可以在右边查看 by johnson ...

  9. iOS开发之#iPhone6与iPhone6Plus适配#Xcode6.0/Xcode6.1上传应用过程中一些变动以及#解决方案#

    iOS开发之#iPhone6与iPhone6Plus适配#Xcode6.0/Xcode6.1上传应用过程中一些变动以及#解决方案# 参考文章: (1)iOS开发之#iPhone6与iPhone6Plu ...

最新文章

  1. boost::contract模块实现ifdef宏功能测试程序
  2. C++中vector容器为什么扩容时按照2倍或者1.5倍进行扩容
  3. 软件设计师笔记---中央处理单元CPU
  4. 查看手机已经记住的WIFI密码
  5. JAVA中Session的使用
  6. window10运行不了1stopt_1stopt win10版下载
  7. iOS短视频:基于GPUIMage的短视频录制(GPUImage自定义相机)
  8. CMakeLists.txt文件常见编译错误
  9. 你们要的水性粘合剂乳胶漆消泡剂已经出来了
  10. 第八节 Electron主进程和渲染进程之间的通信
  11. 汉诺塔问题以及青蛙跳台阶问题(附C语言代码)
  12. 湖北省创新型中小企业培育申报流程方法及申报时间要求指南
  13. 流体力学(水力学)满分实验报告——伯努利方程
  14. 如何快速创建vue的SPA项目
  15. java课程设计指导记录表_JAVA课程设计指导书ofr2012级.doc
  16. python 抓取网页 库_5种流行的Web抓取Python库,你用过哪种?
  17. 传统软件架构与微服务架构
  18. 集众家之所长,手把手教你如何在Ubuntu18.04上安装CUDA10.0+CUDNN7.5+Torch7(非Pytorch)(保姆级教学)
  19. 虚拟机登录时输入密码正确,进入界面后黑屏闪退回登陆界面,死循环问题,已解决
  20. 为什么 Python 4.0 不会像 3.0 一样?

热门文章

  1. java获取当前工作目录
  2. Android自定义控件实现九宫格解锁
  3. BZOJ 2157: 旅游
  4. JZOJ 4061. 【JSOI2015】字符串树
  5. matlab计算斜方差_协方差与协方差矩阵(附Matlab实现)
  6. docker安装gitlab_Gitlab 中 CI/CD 自动化部署与使用
  7. 关联规则挖掘算法_数据挖掘 | 关联规则分析
  8. 数学之美 系列十三 信息指纹及其应用
  9. SVM的发展和研究热点
  10. 20200930 《计算感知》第1节课 笔记