IOS SizeClasses 详解

时间:2022-09-13 10:32:12

SizeClasses 详解


iOS 8在应用界面的可视化设计上添加了一个新的特性-Size Classes。对于任何设备来说,界面的宽度和高度都只分为三种描述:紧凑,任意和宽松。这样开发者便可以无视设备具体的尺寸,而是对这两类和它们的组合进行适配。

为什么苹果推出SizeClasses

  • iPhone3gs-4s : frame直接写死。
  • iPad : autoresizing —> 根据父控件frame发生改变,子控件跟着一起改变。
  • iPhone5-iPhone5s : autolayout —>自动布局。
  • iPhone6和iPhone6p : size Classes—>发现屏幕变的太多样化,界面不得不统一。

sizeclass

  • 仅仅是对屏幕进行了分类, 真正排布UI元素还得使用autolayout
  • 不再有横竖屏的概念, 只有屏幕尺寸的概念
  • 不再有具体尺寸的概念, 只有抽象尺寸的概念

sizeclass把宽度和高度各分为3种情况

  • Compact : 紧凑(小)
  • Any : 任意
  • Regular : 宽松(大)

sizeclass中的符号代表

  • Compact: -
  • Any: *
  • Regular: +

继承性

w:Compact h:Compact 继承 (w:Any h:Compact , w:Compact h:Any , w:Any h:Any)

w:Regular h:Compact 继承 (w:Any h:Compact , w:Regular h:Any , w:Any h:Any)

w:Compact h:Regular 继承 (w:Any h:Regular , w:Compact h:Any , w:Any h:Any)

w:Regular h:Regular 继承 (w:Any h:Regular , w:Regular h:Any , w:Any h: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)

sizeclass和autolayout的作用

sizeclass:仅仅是对屏幕进行了分类

autolayout:对屏幕中各种元素进行约束(位置\尺寸)

以上是对SizeClasses的简单概念介绍。

下面将会对其使用进行介绍(较多的图文介绍)

图一(整体工程)

IOS SizeClasses 详解

图二(我们按照图一的指向点击后就可以进入到其操作界面)

IOS SizeClasses 详解

图三(看到图二我想你会想这是什么和上面的文字有什么关系吗?那么图三会让他们联系起来)

IOS SizeClasses 详解

通过图三可以让我们使图与文字相连接,但是该如何使用还不是很清楚,下面通过实例让我们对其进行了解。

实例一:让一个view竖屏时显示,横屏时不显示。(图解如下)

在竖屏时显示(在竖屏时添加view)

IOS SizeClasses 详解

横屏不显示(因为我们是在竖屏时添加的,在横屏时不做操作即可)

IOS SizeClasses 详解

让我们看看实例结果:

结果一:

IOS SizeClasses 详解

结果二(不要怀疑你的眼睛就是白色的

IOS SizeClasses 详解的更多相关文章

  1. 【转】IOS AutoLayout详解(三)用代码实现(附Demo下载)

    转载自:blog.csdn.net/hello_hwc IOS SDK详解 前言: 在开发的过程中,有时候创建View没办法通过Storyboard来进行,又需要AutoLayout,这时候用代码创建 ...

  2. IOS SDK详解

    来源:http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html?page=1#42803301 博客专栏>移动开发专栏>I ...

  3. iOS路由详解

    本文如题,路由详解,注定是一篇详细解释iOS路由原理及使用的文章,由于此时正在外地出差,无法详细一一写出,只能不定时的补充. 一.什么是iOS路由 路由一词来源于路由器,可以实现层级之间消息转发的功能 ...

  4. IOS 手势详解

    在IOS中手势可以让用户有很好的体验,因此我们有必要去了解一下手势. (在设置手势是有很多值得注意的地方) *是需要设置为Yes的点击无法响应* *要把手势添加到所需点击的View,否则无法响应* 手 ...

  5. iOS模式详解—「runtime面试、工作」看我就 🐒 了 ^_^.

    Write in the first[写在最前] 对于从事 iOS 开发人员来说,当提到 ** runtime时,我想都可以说出来 「runtime 运行时」和基本使用的方法.相信很多开发者跟我当初一 ...

  6. iOS 模式详解—「runtime面试、工作」看我就 🐒 了 ^_^.

    引导 Copyright © PBwaterln Unauthorized shall not be *copy reprinted* . 对于从事 iOS 开发人员来说,所有的人都会答出「runti ...

  7. ios学习--详解IPhone动画效果类型及实现方法

    详解IPhone动画效果类型及实现方法是本文要介绍的内容,主要介绍了iphone中动画的实现方法,不多说,我们一起来看内容. 实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一 ...

  8. iOS CoreAnimation详解(一) 有关Layer的动画

    以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog. ...

  9. iOS UIControl 详解

    UIControl是UIView的子类,当然也是UIResponder的子类.UIControl是诸如UIButton,UISwitch,UItextField等控件的父类,它本身包含了一些属性和方法 ...

随机推荐

  1. 企业开发中选择logback而不是log4j的理由

    不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因 ...

  2. ENTBOOST 2014.180L 发布,开源企业IM免费企业即时通讯

    ENTBOOST,VERSION 2014.180 Linux版本发布,主要增加企业IM应用集成功能,完善安卓SDK功能及部分BUG修正: 7/1(明天)发布Windows版本,敬请关注! ENTBO ...

  3. HDU 5765 Bonds 巧妙状压暴力

    题意:给一个20个点无向连通图,求每条边被多少个极小割集包括 分析:极小割集是边的集合,很显然可以知道,极小割集恰好吧原图分成两部分(这个如果不明白可以用反证法) 然后就是奉上官方题解:http:// ...

  4. 【源代码】基于Android和蓝牙的单片机温度採集系统

    如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 STC89C52单片机通过HC-06蓝牙模块与Android手机通信实例- 基于And ...

  5. Python从入门到放弃之迭代器

    迭代器是Python2.1中新加入的接口(PEP 234),说明如下: The iterator provides a 'get next value' operation that produces ...

  6. 常用统计分析 SQL 在 AWK 中的实现(转)

    转自:http://my.oschina.net/leejun2005/blog/100710 最近有需求需要本地处理一些临时的数据,用做统计分析.如果单纯的 MYSQL 也能实现, 不过一堆临时数据 ...

  7. [转]Spring.Net介绍

    转自:http://www.cnblogs.com/cilence/archive/2013/02/21/2920478.html Spring.NET下载地址:http://www.springfr ...

  8. iOS之SQLite使用详解

    #pragma mark - 1.引入<sqlite3.h>头文件//添加libsqlite3.0.tbd#import <sqlite3.h>static sqlite3 * ...

  9. 手把手编写PHP MVC框架实例教程

    源地址:https://www.awaimai.com/128.html#comment-27466 这个不错,用php实现mvc最核心功能,代码量只有几十K. 其实,不管用那种方法,最终都是incl ...

  10. 面向切面编程 &lpar; Aspect Oriented Programming with Spring &rpar;

    Aspect Oriented Programming with Spring 1. 简介 AOP是与OOP不同的一种程序结构.在OOP编程中,模块的单位是class(类):然而,在AOP编程中模块的 ...