0. 背景:

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

因此, 在iOS 8以后苹果推出了Size Class, 它是基于Auto Layout技术的。

1. Size Class的开启和使用

与Auto Layout不同, Size Class不能通过代码编程管理,只能通过IB(Interface Builder)使用。

默认情况下Story Board等布局文件已经开启了Size Class,如果没有开启,可以选中Story Board->文件检查器->选中Use Size Classes

->点击布局工具栏的Size Class按钮(wAny|hAny),将弹出Size Class菜单。

2. Size Class的九宫格

Size Class菜单是一个九宫格,可以组合出9种情况,每一种情况应对不同的布局。

wCompact | hCompact

wAny | hCompact

wRegular | hCompact

wCompact | hAny

  

wAny | hAny

wRegular | hAny

wCompact | hRegular

wAny | hRegular

wRegular | hRegular

Compact - 紧凑

就是屏幕空间相对较小,如iPhone竖屏时,水平方向是Compact,而垂直方向是Regular,这时候的取值是wCompact | hRegular。

Any        - 任意

在Compact和Regular之间的值是Any, Any一般用于iPad布局,这时候的取值是wAny | hAny。

Regular  - 正常

正常情况, 当iPhone横屏时,水平方向是Regular,而垂直方向是Compact, 这时候的取值为wRegular | hCompact。

* wCompact | hCompact: 适用于3.5英寸,4英寸,4.7英寸的iPhone的横屏情况。

* wAny | hCompact:        适用于垂直方向是Compact的情况,例如iPhone横屏。

* wRegular | hCompact:  适用于5.5英寸的iPhone的横屏情况。

* wCompact | hAny:       适用于所有的水平方向是Compact的情况,如3.5英寸,4英寸,4.7英寸的iPhone的竖屏情况。

* wAny | hAny:              适用于所有的布局情况,这是最后的选择。

* wRegular | hAny:        适用于所有的水平方向是Regular的情况,如iPad横屏和竖屏的情况。

* wCompact | hRegular: 适用于所有的iPhone竖屏情况。

* wAny | hRegular:        适用于所有的垂直方向是Regular的情况,如iPhone竖屏,iPad横屏和竖屏的情况。

wRegular | hRegular:     适用于所有的iPad横屏和竖屏的情况。

转载于:https://www.cnblogs.com/davidgu/p/6357357.html

iOS开发技巧 - Size Class与iOS 8多屏幕适配(一)相关推荐

  1. 【转】几点 iOS 开发技巧

    [译] 几点 iOS 开发技巧 原文:iOS Programming Architecture and Design Guidelines 原文来自破船的分享 原文作者是开发界中知晓度相当高的 Mug ...

  2. iOS开发技巧:设置App icon图标及修改应用程序名

    前言 这是iOS开发技巧系列博客的第二篇,本篇主要简单介绍一下如何设置应用程序的icon图标以及修改应用程序名. 设置 icon 首先我们来看看如何设置App icon图标,设置应用程序的icon图标 ...

  3. ios开发跳转safari_阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页

    最近为了更好地接触移动Web 开发狠心购买了一台ipad mini(之前一直都是借同学的,借多了就不好意思了).拿来调试DeveMobile 与EaseMobile 主题 时候发现了不少问题,现在在一 ...

  4. IOS开发-我的第一个IOS程序

    学完前面的ObjC基础,那么接下来我可以开始我的IOS开发之旅了- 1.首先打开Xcode创建一个工程 2.选择IOS->Application->SingleView Applicati ...

  5. iOS开发笔记之八十一——2020 iOS面试总结《一》之干货篇

    ******阅读完此文,大概需要5分钟****** 这是我毕业之后第三次开始找工作了,适逢2019年底,我清楚地知道,iOS开发已经不是很景气了,尽管自己有名校以及大厂背景,但是自己一点都没有把握,自 ...

  6. iOS开发笔记--超全!iOS 面试题汇总

    作者:Job_Yang 之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) Object-c的类可以多重继承么?可以实现 ...

  7. 汉诺塔自动解题动画中的iOS开发技巧

    引 前段时间做了一道题,要求实现汉诺塔游戏的自动解题动画: 汉诺塔游戏应该都了解规则: 1.将盘子全部移动到塔C 2.每次只能移动一个圆盘: 3.大盘不能叠在小盘上面. 要求由用户输入盘子的数量,绘制 ...

  8. iOS开发技巧-国际化(Localization),只看一篇就够了

    转:https://www.jianshu.com/p/f8edd7b7a217 本文主要涉及iOS的国际化,网上虽然有很多相关的文章,但是仔细阅读下来感觉都不太全面,因此重开一篇总结,记录项目中遇到 ...

  9. iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置)

    新建一个Category,命名为UIColor+Hex,表示UIColor支持十六进制Hex颜色设置. UIColor+Hex.h文件, #import <UIKit/UIKit.h> # ...

最新文章

  1. python3猜数字小游戏代码示例
  2. Socket心跳包异常检测的C语言实现,服务器与客户端代码案例
  3. 如何才能成为优秀的测试工程师?
  4. Spark之GraphX
  5. 五子棋项目结束总结_五子棋编程思想小结
  6. AndroidStudio安卓原生开发_Activity_中Activity显示/隐式启动Action和Category配置详解---Android原生开发工作笔记84
  7. Highcharts实现图形报表(我主要实现javaweb开发的图形报表)
  8. mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区...
  9. 灵云语音识别(ASR)实现实时识别
  10. 如何选择漏电保护器规格型号_电涌保护器(SPD)选择有哪几个关键的参数?SPD如何使用和安装?...
  11. ES Filebeat 使用 Pipeline 处理日志中的 @timestamp
  12. AIDA64内存与缓存测试过了算稳定吗_无需XMP默认3200MHz,十铨 开创者 内存开箱简测...
  13. 高通msm8937的BLSP学习
  14. 毕节市搜索引擎优化_毕节市网站建设58同城
  15. 3D数学基础:向量运算
  16. MSP432 BSL流程(UART)
  17. 复制微信号并打开微信_理解信号并不那么复杂
  18. Ubuntu 屏幕颜色校准
  19. 企业中台最佳实践----阿里等商业巨头组织架构的战略变迁(四)
  20. Druid之——连接池自定义数据库密码加解密的实现

热门文章

  1. linux spyder 目录,linux下创建spyder桌面图标的方法
  2. d3力导向图增加节点_D3.js+Es6+webpack构建人物关系图(力导向图),动态更新数据,点击增加节点,拖拽增加连线......
  3. idea 新建的java项目没发run_IDEA 如何创建一个普通的 Java 项目,及创建 Java 文件并运行...
  4. circle函数用法 turtle_Turtle库与Time库基础知识分享(详细)
  5. 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
  6. seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_网站seo优化排名,网络推广的优化服务...
  7. char-embedding是如何输入到模型的
  8. 数据结构稀疏矩阵的加法十字链表_学习数据结构和算法的框架思维
  9. mysql for centos下载_python数据分析之路——centos下载并配置mysql与navicat的使用
  10. 在Java中设计和使用自己的注解(转载)