iOS Xcode6 AutoLayout跟Size Classes(4)size classes 的应用

iOS 8在应用界面的可视化设计上添加了一个新的特性-Size Classes,对于任何设备来说,界面的宽度和高度都只分为两种描述:正常和紧凑。这样开发者便可以无视设备具体的尺寸,而是对这两类和它们的组合进行适配。这样不论在设计时还是代码上,我们都可以不再受限于具体的尺寸,而是变成遵循尺寸的视觉感官来进行适配

要知道Size Classes并不能帮我们自动布局,而是帮助我们来管理不同类型的IB

但是我们看到图中的宽度和高度都是Any,Any是什么意思呢?如果weight设为Any,height设置为Regular,那么在该状态下的界面元素在只要height为Regular,无论weight是Regular还是Compact的状态中都会存在。这种关系应该叫做继承关系,具体的四种界面描述与可继承的界面描述如下:

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)

//我们来实验一下

新建一个工程我们可以看到xib的下方有一个w Any hAny(这样指的是宽  跟高),我们对照那个上边的尺寸表就知道这个应该是适合所有尺寸,我们来将它变为手机的尺寸

如下

我们往上来拖几个控件,作为登录也自动布局不知道的可以看前一篇博文

如下:

设置了距离上边邻居40左右20宽度为30(那么它的位置是不是确定了,仔细想想也许不是呢)。

我们来看下效果

在4上:

在6 plus上

这样看来我们这个是没有问题的

接下来如何来做一个平板的尺寸呢?

如下

我们将长跟宽都设置为Regular这就是一个Ipad的尺寸了

我们来还原刚才的那一个页面,在Ipad中我们多添加一个第三方登录按钮

如下:

嗯差不多就是这样了,我们来看看效果

在手机上

在平板上

总体来说size classes就是一个xib管理器,他用来管理我们所有尺寸的xib,并且根据设备的变化而自动来获取这个设备的xib并刷新控件的fram,这样的话, 你一个代码就能适配所有的机型啦。这样是不是很棒呢= =

时间: 2025-01-02 14:16:24

iOS Xcode6 AutoLayout跟Size Classes(4)size classes 的应用的相关文章

iOS Xcode6 AutoLayout跟Size Classes(2)

我们来实际用一下autoLayout 新建一个XIB如下,并且拖动一个文本框,然后将其颜色改变为红色 我们的需求是他将要距离上边30距离左边右边10距离下边10(如果以传统的写死那么在不同的手机上将会是一个特别糟糕的问题,所以我们应该使用自动布局来约束它,解决这个问题) 首先我们选中创建出来的文本框并点击如下按钮 然后将其约束为距离上下左右都10 最后xib会变成这样 然后再跟大家说一下Xcode6的布局神器 然后我们刚才创建的视图就出来啦 还可以选择更多的手机哦

iOS Xcode6 AutoLayout跟Size Classes(5)size classes 屏幕旋转的应用

z以后一篇介绍sizeclasses啦.这次弄一个播放页面.会用到旋转然后重新布局的 如下创建出视图: 然后用自动布局来约束它 竖屏差不多为这样 然后我们来做出横屏 约束后差不多是这个样子 然后来看下转换屏幕方向的效果 竖屏: 横屏 这里解释一下为什么是6 plus的尺寸.因为前边我选择横屏的时候选择了w:Regular h:Compact所以这个尺寸是适合于6plus的,其他的话是没有的

ios Xcode6 AutoLayout跟Size Classes(3)

现在我们来弄一个相对复杂一点的布局 如下 需求为要求用户名距离上边30文本框跟按钮距离左右40 .他们的间距为30 我们来设置它的间距(其实完全可以想像为盒子设置与它邻居的间距,这样不就是简单了) 然后来看效果 假如我们需要来改变第三个框跟按钮的位置怎么办我们这样来 点击按钮弹出来的一条线(这是约束线) 然后修改constant的距离1000是优先级我们改为10 效果图 是不是很简单了

iOS 8 AutoLayout与Size Class自悟(转载)

iOS 8 AutoLayout与Size Class自悟 Size classiOS 8 AutoLayout 前言 iOS8 和iPhone6发布已经过去蛮久了,广大的果粉终于迎来了大屏iPhone,再也不用纠结为大屏买三星舍苹果了…但是对于iOS开发人员来说,迎来了和 Android开发开发一样的问题—>各种屏幕的适配(是不是可以要求加工资的节奏).对于适配,网传各种有关Size Class的论点,前段时间太忙,一直没去研究,套用+总的话,苹果在适配方面提供的方法做的比安卓好太多了.自己实

IOS中AutoLayout的使用

1.基本概念 在 iPad 和 iPhone 5 出现之前,iOS 设备就只有一种尺寸.我们在做屏幕适配时需要考虑的仅仅有设备方向而已.而很多应用并不支持转向,这样的话就完全没有屏幕适配的工作了.随着 iPad 和 iPhone 5,以及接下来的 iPhone 6 的推出,屏幕尺寸也变成了需要考虑的对象.在 iOS 7 之前,为一个应用,特别是 universal 的应用制作 UI 时,我们总会首先想我们的目标设备的长宽各是多少,方向变换以后布局又应该怎么改变,然后进行布局.iOS 6 引入了

iOS 8 AutoLayOut入门

http://blog.csdn.net/asdfg13697116596/article/details/42562565 iOS 8 AutoLayOut入门自从iOS6带来Auto Layout这个特性以来,用户界面的布局便变得简单起来.iOS8更是做的更好本文主要针对初学者分享一下自己最近学习AutoLayout的心得体会.Let’s Start!首先,什么是AutoLayout?简单来说,就是自动布局,当你旋转屏幕或者缩放你的UI来适应不同大小的屏幕等,程序的视图看起来依然很nice,

IOS不用AutoLayout也能实现自动布局的类----MyLinearLayout横空出世

下载地址: https://github.com/youngsoft/MyLinearLayout       众所周知,对于IOS开发者来说,随着手机屏幕的尺寸在增多,不可避免的也需要考虑适配的问题了.这个问题在IOS6以前我们可以通过autoresizingMask和frame进行组合来解决视图伸缩.旋转的适配,但是这个方案不彻底还是需要编写很多的代码来完成:而在IOS6以后推出了AutoLayout的解决方案,这个方案的实现和可操作性太过于复杂和繁琐不仅编写的代码特别多,就是在XIB上进行

Shallow Size 和 Retained Size

所有包含Heap Profling功能的工具(MAT, Yourkit, JProfiler, TPTP等)都会使用到两个名词,一个是Shallow Size,另一个是 Retained Size. 这是两个在平时不太常见的名词,本文会对这两个名词做一个详细的解释. Shallow Size对象自身占用的内存大小,不包括它引用的对象. 针对非数组类型的对象,它的大小就是对象与它所有的成员变量大小的总和.当然这里面还会包括一些java语言特性的数据存储单元. 针对数组类型的对象,它的大小是数组元素

What does "size" in int(size) of MySQL mean?

What does "size" in int(size) of MySQL mean? https://alexander.kirk.at/2007/08/24/what-does-size-in-intsize-of-mysql-mean/ Friday, August 24th, 2007 at 21:40 +0000 (UTC) by Alexander Kirk I was always wondering what the size of numeric columns i