iOS平台这几年推出了众多新机型,iPhone4/4S、iPhone5/5C/5C、iPhone6/6S、iPhone6 Plus/6S Plus,iPad mini/iPad Air/iPad Pro,这么多不一样的屏幕,拥有着不一样的分辨率,为了适配这么多的设备,苹果提供了AutoLayout和SizeClasses这两个强有力的工具。AutoLayout做为最基础的部分,对于一个iOS开发者是很是重要的,AutoAutoLayout又是灵活的,对于新手来讲掌握是比较难的。 今天小组中一妹子就在AutoLayout上遇到了问题,正好借此机会说一下AutoLayout在IB中的使用
如今这个界面虽然能显示,可是在不一样的机子上倒是一样的坐标,然而不一样的机型有不一样的分辨率,比例,这就是咱们用AutoLayout的缘由。
AutoLayout的整体思路就是经过对控件的约束来动态肯定控件的位置和大小。
咱们先来对TextField设置约束,选中这个TextField,IB设置约束有两种方式,一个是用右下角的四个工具设置。另外一个和咱们关联代码与控件的方式相似,按住ctrl键,拖
,此次拖的目标不是代码,而是其余控件
这个能够设置和其余控件的关系,这里咱们选择第一个,与容器的leading空间,这样能保证这一小块空间不变。
拉完效果是这样,为何这条约束是红色呢?
是由于这个控件仍处于欠约束的状态,也就是说仅经过已有的约束不能肯定其位置,这时若是打开大纲视图,左上角会有错误。
这是说现有的约束不能肯定在垂直方向的位置
勾选第二个
你会发现这个错误变成了警告
这是说经过视图肯定的位置与经过约束肯定的位置不一样
上面的是经过约束肯定的位置
如今咱们须要修正这个问题
第一个选项,更新框架
也就是将控件移动到经过其约束推测出的地方
第二个,更新约束,也就是将约束修改成你的视图中的位置
咱们选择第二个
这根蓝线已经移动到了咱们但愿的位置
可是出现了一个新的警告
黄色虚线的位置就是根据约束,这个textField的位置
这是由于在水平方向,咱们仅设定了距左边的距离
它根据文本框内容推测出了一个新的宽度
这是咱们不但愿的
因此咱们在水平方向加一个新的约束
距右侧加号Label的距离
第一个选项
水平距离
这个时候问题不只没有解决,你会发现警告愈来愈多了
这是由于这个加号也没有设置约束
它的位置是没法经过约束推测的
这个时候不要理会那些警告
作完天然就没了
咱们这时候给加号一个垂直方向约束
设置它与左边的TextField center Vertically
后面几个控件也都设置与左边控件的距离,并保持X轴方向在一条直线上
水平方向存在一个问题
两个文本框和中间的加号都是用之间的距离肯定的
它的宽度没有办法肯定
最后一个结果与右边框作一个TraillingSpace
这是会有红色的报错
这时
咱们想一个办法来处理
将两个文本框设置为equal width
这样就会变成几个警告
选第一个更新框架
勾选地下的勾
对全部警告都这样处理
对于那个按钮
咱们让它到画面最中间去。框架
这时,咱们发现,在横屏时,上面的几个控件都消失了,这是由于咱们给左边第一个文本框设置的y轴位置不对,咱们如今在大纲视图中删除这条约束,增长一条距离TopGuideLine的约束
如今咱们的程序就已经能够在不一样的设备上完美适配了ide