iOS开发技巧 - Size Class与iOS 8多屏幕适配(一)
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多屏幕适配(一)的更多相关文章
- 【转】几点 iOS 开发技巧
[译] 几点 iOS 开发技巧 原文:iOS Programming Architecture and Design Guidelines 原文来自破船的分享 原文作者是开发界中知晓度相当高的 Mug ...
- iOS开发技巧系列---详解KVC(我告诉你KVC的一切)
KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...
- 几点iOS开发技巧
转自I'm Allen的博客 原文:iOS Programming Architecture and Design Guidelines 原文来自破船的分享 原文作者是开发界中知晓度相当高 ...
- iOS开发技巧
一.寻找最近公共View 我们将一个路径中的所有点先放进 NSSet 中.因为 NSSet 的内部实现是一个 hash 表,所以查找元素的时间复杂度变成了 O(1),我们一共有 N 个节点,所以总时间 ...
- iOS开发技巧系列---使用链式编程和Block来实现UIAlertView
UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本 ...
- iOS开发技巧 -- 复用代码片段
如果你是一位开发人员在开发过程中会发现有些代码无论是在同一个工程中还是在不同工程中使用率会很高,有经验的人会直接封装在一个类里,或者写成一个宏定义或者把这些代码收集起来,下次直接使用,或者放到xcod ...
- 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述
前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...
- iOS开发技巧-2
1,打印View所有子视图 po [[self view]recursiveDescription] 2,layoutSubviews调用的调用时机 * 当视图第一次显示的时候会被调用 * 当这个视图 ...
- IOS开发技巧快速生成二维码
随着移动互联网的发展,二维码应用非常普遍,各大商场,饭店,水果店 基本都有二维码的身影,那么ios中怎么生成二维码呢? 下面的的程序演示了快速生成二维码的方法: 在ios里面要生成二维码,需要借助一个 ...
随机推荐
- Javascript:自己写异步流程编程框架
背景 自从NodeJs出来以后,异步编程便更加系统化和框架话了,为了应对异步编程框架带来的深层嵌套问题,社区也出现了异步流程编程框架,本文主要对异步流程框架做一个简单的解析. 现配代码了 var As ...
- 错误:不小心的VS重命名
问题再现 不小心勾选了“在字符串中搜索”.
- Asp.Net Mvc3.0(MEF依赖注入理论)
前言 Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)等.MEF为开发人员提供了一个工具,让我们 ...
- ArcGIS教程:树状图
摘要 构造可显示特征文件里连续合并类之间的属性距离的树示意图(树状图). 使用方法 · 输入特征文件必须採用预定的特征文件格式. 特征文件可使用 Iso 聚类或创建特征工具来创建.该文件必须至少包括两 ...
- 同一个ImageView根据xml文件来显示不同的图片--level-list
感谢:http://blog.sina.com.cn/s/blog_6111ce890100psq9.html 有时候,我们为了在一个ImageView中显示不同的图片,平时往往会使用: if (条件 ...
- [Android Pro] 开发一流Android SDK
cp from : https://blog.csdn.net/dd864140130/article/details/53558011 本篇文章已授权微信公众号 guolin_blog (郭霖)独家 ...
- Visual Studio Code compile error - launch.json must be configured...
一.在最初使用VS Code创建控制台应用时, 使用VS Code调试工具默认会跑出异常: launch: program 'launch: launch.json must be configure ...
- 数据库分库分表中间件:Mycat;分布式数据库;mysql的分布式事务
官网:http://mycat.io/,里面有电子书籍可以下载:http://www.mycat.io/document/mycat-definitive-guide.pdf 旧版本下载地址:http ...
- HttpAsyncClient的连接池使用
代码示例 public static void main(String[] args) throws Exception { ConnectingIOReactor ioReactor = new D ...
- FinalizableReference, FinalizablePhantomReference, FinalizableReferenceQueue
FinalizableReference /* * Copyright (C) 2007 The Guava Authors * * Licensed under the Apache License ...