热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS8后屏幕适配SizeClasses、AutoLayout

iOS8屏幕适配SizeClasses介绍很多人因为App屏幕适配烦恼,我自己做的项目也是很多适配的原因,代码实现需要算很多frame,

iOS8 屏幕适配 Size Classes


介绍


  • 很多人因为App屏幕适配烦恼,我自己做的项目也是很多适配的原因,代码实现需要算很多frame,感觉比较麻烦,现在有Size Classes,简单了解以后,可能会有所帮助
  • 在 iOS8 中,我们不用再像以前那样,一个页面新建多个 xib 文件来适配不同类型的屏幕,现在我们可以把各种尺寸屏幕的适配工作放在一个文件中完成,然后可以通过不同类别的 Size 来定制各种尺寸的界面。现在的storyboard可以管理九种类型的屏幕。

  • 宽度和高度,都有三种情况:紧凑 (Compact) 、任意 (Any) 、 正常 (Regular) ,一共就9个类别

  • 下列屏幕提示为:W 为 Compact H 为 Any 的情况,3.5-inch、4-inch、4.7-inch的横竖状态下的屏幕

这里写图片描述


测试功能


  • 进来可以看到每次的默认 W、H 都是Any的

这里写图片描述


  • 右侧可以看到 Size Classes 需要开启还是关闭
  • 这里写图片描述

  • 由于Size Classes需要依赖Auto Layout,所以不勾选 Use Auto Layout ,单独勾选Use Size Classes会有提示


  • 这里写图片描述

大意是只,如果只勾选 Size Classes 不勾选Auto Layout就会被禁用约束类等相应的控制Size的单个器件系列


  • 将下面 SizeClasses 设置 宽 Any 高 Any,添加约束之后
  • 这里写图片描述

  • 任意切换视图大小,尺寸变化之后,子视图相对于父视图的位置不会发生改变,如果约束大小,大小也不会改变,下面只是约束相对于父视图位置为例


  • 这里写图片描述

* 经过查看官方文档和具体实践得知具体对应关系如下:

iPhone4S,iPhone5/5s,iPhone6
竖屏:(w:Compact h:Regular)
横屏:(w:Compact h:Compact)

iPhone6 Plus
竖屏:(w:Compact h:Regular)
横屏:(w:Regular h:Compact)

iPad
竖屏:(w:Regular h:Regular)
横屏:(w:Regular h:Regular)

Apple Watch(猜测)
竖屏:(w:Compact h:Compact)
横屏:(w:Compact h:Compact)

大家可以自己调整屏幕,适应的状态,然后在相应的适合的尺寸之内可以做页面的铺设,非常方便


屏幕适配


  • 首先大家要了解AutoLayout,给大家一些图片,可以自行研究设置相应的约束,让你所拖的控件自适应屏幕

这里写图片描述

这里写图片描述

这里写图片描述


  • 我们现在假如要求竖屏的时候,蓝红按钮正常排列,那么我们需要选中SizeClasses中的代表竖屏所有屏幕大小的 w Compact,h Regular ,并且相应的添加约束

这里写图片描述


  • 然后选择横屏模式 w Any , h Compact,将蓝色按钮放在左边,红色按钮放在右边,这样排列,相应的添加约束

这里写图片描述

*这样运行起来,有没有发现,横屏正常,按下 command + → ,横屏显示会更改布局,如果大家掌握,相信项目布局方面会提升效率

这里写图片描述

这里写图片描述

本文属于个人调研简单了解,仅供参考


推荐阅读
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 我一直都有记录信息的习惯,不知是从什么时候开始,大约是在工作后不久。如今还真有点庆幸从那时开始记了点东西,当然是电子版的,写 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • python3 logging
    python3logginghttps:docs.python.org3.5librarylogging.html,先3.5是因为我当前的python版本是3.5之所 ... [详细]
author-avatar
zf19920222
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有