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横屏和竖屏的情况。

iOS开发技巧 - Size Class与iOS 8多屏幕适配(一)的更多相关文章

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

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

  2. iOS开发技巧系列---详解KVC(我告诉你KVC的一切)

    KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...

  3. 几点iOS开发技巧

    转自I'm Allen的博客   原文:iOS Programming Architecture and Design Guidelines   原文来自破船的分享   原文作者是开发界中知晓度相当高 ...

  4. iOS开发技巧

    一.寻找最近公共View 我们将一个路径中的所有点先放进 NSSet 中.因为 NSSet 的内部实现是一个 hash 表,所以查找元素的时间复杂度变成了 O(1),我们一共有 N 个节点,所以总时间 ...

  5. iOS开发技巧系列---使用链式编程和Block来实现UIAlertView

    UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本 ...

  6. iOS开发技巧 -- 复用代码片段

    如果你是一位开发人员在开发过程中会发现有些代码无论是在同一个工程中还是在不同工程中使用率会很高,有经验的人会直接封装在一个类里,或者写成一个宏定义或者把这些代码收集起来,下次直接使用,或者放到xcod ...

  7. 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述

    前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...

  8. iOS开发技巧-2

    1,打印View所有子视图 po [[self view]recursiveDescription] 2,layoutSubviews调用的调用时机 * 当视图第一次显示的时候会被调用 * 当这个视图 ...

  9. IOS开发技巧快速生成二维码

    随着移动互联网的发展,二维码应用非常普遍,各大商场,饭店,水果店 基本都有二维码的身影,那么ios中怎么生成二维码呢? 下面的的程序演示了快速生成二维码的方法: 在ios里面要生成二维码,需要借助一个 ...

随机推荐

  1. Opencv2教程一:图像变换之阈值二值threshold

    网名:无名   QQ:16349023 email:mengwzy@qq.com 曾经非常少写教程,写的可能有点乱希望大对家有帮助 threshold 方法是通过遍历灰度图中点.将图像信息二值化,处理 ...

  2. SQLServer2008:在查看表记录或者修改存储过程时出现错误。错误消息为: 目录名无效

    登陆数据库后,右键打开表提示:目录名无效,执行SQL语句也提示有错误,本来想重装的这个肯定能解决,但是这个方法真的不视为上上策啊,于是在网上找到了这个解决办法,还真是立即见效啊!分享给大家,希望有帮助 ...

  3. Java反射-修改String常量

    /* * ReflectString.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ package reyo ...

  4. LockSupport的park和unpark的基本使用,以及对线程中断的响应性

    LockSupport是JDK中比较底层的类,用来创建锁和其他同步工具类的基本线程阻塞原语.java锁和同步器框架的核心AQS:AbstractQueuedSynchronizer,就是通过调用Loc ...

  5. 部署maven的一些要点、遇到的问题和心得体会

    maven的部署.遇到的问题和心得体会 2013-10-24 | 阅:  转:  |  分享         部署maven的一些要点.遇到的问题和心得体会 (图片看不了,可以下载doc文件) 一.  ...

  6. 概率校准与Brier分数

    1.再提逻辑回归 前面已经讲过了逻辑回归,这里不再细讲,只是简单的说一个函数,主要是方便大家更好的理解概率校准. 在逻辑回归中,用的最多的就是sigmod函数,这个函数的作用就是把无限大或者无限小的数 ...

  7. 使用Mobx插件查看mobx的变量值

    mobx浏览器调试:可以知道store值.方法 在chrome上安装插件Mobx,可以查看store.history.match.location等内容

  8. Java Collection Framework : List

    摘要: List 是 Java Collection Framework的重要成员,详细包括List接口及其全部的实现类.由于List接口继承了Collection接口,所以List拥有Collect ...

  9. 奇怪吸引子---Finance

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  10. Round() 四舍五入 js银行家算法

    首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825;        ...