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横屏和竖屏的情况。
转载于:https://www.cnblogs.com/davidgu/p/6357357.html
iOS开发技巧 - Size Class与iOS 8多屏幕适配(一)相关推荐
- 【转】几点 iOS 开发技巧
[译] 几点 iOS 开发技巧 原文:iOS Programming Architecture and Design Guidelines 原文来自破船的分享 原文作者是开发界中知晓度相当高的 Mug ...
- iOS开发技巧:设置App icon图标及修改应用程序名
前言 这是iOS开发技巧系列博客的第二篇,本篇主要简单介绍一下如何设置应用程序的icon图标以及修改应用程序名. 设置 icon 首先我们来看看如何设置App icon图标,设置应用程序的icon图标 ...
- ios开发跳转safari_阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页
最近为了更好地接触移动Web 开发狠心购买了一台ipad mini(之前一直都是借同学的,借多了就不好意思了).拿来调试DeveMobile 与EaseMobile 主题 时候发现了不少问题,现在在一 ...
- IOS开发-我的第一个IOS程序
学完前面的ObjC基础,那么接下来我可以开始我的IOS开发之旅了- 1.首先打开Xcode创建一个工程 2.选择IOS->Application->SingleView Applicati ...
- iOS开发笔记之八十一——2020 iOS面试总结《一》之干货篇
******阅读完此文,大概需要5分钟****** 这是我毕业之后第三次开始找工作了,适逢2019年底,我清楚地知道,iOS开发已经不是很景气了,尽管自己有名校以及大厂背景,但是自己一点都没有把握,自 ...
- iOS开发笔记--超全!iOS 面试题汇总
作者:Job_Yang 之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) Object-c的类可以多重继承么?可以实现 ...
- 汉诺塔自动解题动画中的iOS开发技巧
引 前段时间做了一道题,要求实现汉诺塔游戏的自动解题动画: 汉诺塔游戏应该都了解规则: 1.将盘子全部移动到塔C 2.每次只能移动一个圆盘: 3.大盘不能叠在小盘上面. 要求由用户输入盘子的数量,绘制 ...
- iOS开发技巧-国际化(Localization),只看一篇就够了
转:https://www.jianshu.com/p/f8edd7b7a217 本文主要涉及iOS的国际化,网上虽然有很多相关的文章,但是仔细阅读下来感觉都不太全面,因此重开一篇总结,记录项目中遇到 ...
- iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置)
新建一个Category,命名为UIColor+Hex,表示UIColor支持十六进制Hex颜色设置. UIColor+Hex.h文件, #import <UIKit/UIKit.h> # ...
最新文章
- python3猜数字小游戏代码示例
- Socket心跳包异常检测的C语言实现,服务器与客户端代码案例
- 如何才能成为优秀的测试工程师?
- Spark之GraphX
- 五子棋项目结束总结_五子棋编程思想小结
- AndroidStudio安卓原生开发_Activity_中Activity显示/隐式启动Action和Category配置详解---Android原生开发工作笔记84
- Highcharts实现图形报表(我主要实现javaweb开发的图形报表)
- mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区...
- 灵云语音识别(ASR)实现实时识别
- 如何选择漏电保护器规格型号_电涌保护器(SPD)选择有哪几个关键的参数?SPD如何使用和安装?...
- ES Filebeat 使用 Pipeline 处理日志中的 @timestamp
- AIDA64内存与缓存测试过了算稳定吗_无需XMP默认3200MHz,十铨 开创者 内存开箱简测...
- 高通msm8937的BLSP学习
- 毕节市搜索引擎优化_毕节市网站建设58同城
- 3D数学基础:向量运算
- MSP432 BSL流程(UART)
- 复制微信号并打开微信_理解信号并不那么复杂
- Ubuntu 屏幕颜色校准
- 企业中台最佳实践----阿里等商业巨头组织架构的战略变迁(四)
- Druid之——连接池自定义数据库密码加解密的实现
热门文章
- linux spyder 目录,linux下创建spyder桌面图标的方法
- d3力导向图增加节点_D3.js+Es6+webpack构建人物关系图(力导向图),动态更新数据,点击增加节点,拖拽增加连线......
- idea 新建的java项目没发run_IDEA 如何创建一个普通的 Java 项目,及创建 Java 文件并运行...
- circle函数用法 turtle_Turtle库与Time库基础知识分享(详细)
- 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
- seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_网站seo优化排名,网络推广的优化服务...
- char-embedding是如何输入到模型的
- 数据结构稀疏矩阵的加法十字链表_学习数据结构和算法的框架思维
- mysql for centos下载_python数据分析之路——centos下载并配置mysql与navicat的使用
- 在Java中设计和使用自己的注解(转载)