Autolayout(自动布局)

来源:互联网 发布:2000年总决赛第场数据 编辑:程序博客网 时间:2024/05/17 01:07
autolayout布局可以是父子控件之间的布局,也可以是兄弟控件之间的布局。
因为autolayout和autoresizing二者只能选其一,所以在使用autolayout的时候需要将autoresizing禁止掉
Autolayout的设置有两个核心:
A.参照
通过参照其他控件或父控件来设置当前控件的位置和大小
B.约束(Constraint)规则
通过添加约束来限制控件的位置和大小

通过autolayout自动布局,我们可以不用选择模拟器的尺寸,直接以默认的600*600的进行开发
(1)通过storyboard设置autolayout布局
首先autolayout自动布局要勾选下面两项,最好是两项都勾选



storyboard中的下方有这两个选项


对于autolayout选项的几个图标,













Autolayout的警告和错误

a.警告:


当我们设置完约束后,我们会发现在storyboard的左边会有一个带白色箭头的黄色小圆圈,这是因为我们设置了约束后,但控件没有更新frame,它仍然保持着原理的frame



此时我们只需要点击白色箭头黄色小圆圈



点击黄色三角







B.错误



当我们配置完约束后出现上面的带白色箭头的红色圆圈时,表示约束配置出现错误。
约束出现错误有一下两种情况:
1.缺乏必要的约束
如:只设置了控件的宽高,没有设置控件的x和y值
2.两个约束冲突
如:当前控件的宽设置了两个不同的值



点击其中一个删除






通过xcode预览布局

1.首先在storyboard界面选择xcode的右上角的辅助选项







点击下面的加号进行添加



下面通过几个案例来演示autolayout的自动布局

案例1:设置父子控件之间的自动布局

设置子控件在父控件中间,子控件的宽高都是100









通过上面的水平和垂直居中设置了子控件的中心坐标(x,y),通过widthheight设置了子控件的宽高

效果如下:




横屏效果:







案例2:兄弟控件之间的自动布局设置

兄弟控件等高,他们之间始终有20个间距,他们的宽度不定

这里要设置等高,我们只需同时选中两个控件后,在设置等高选项






(2)设置红色框居蓝色框右边距离为20

下面设置红色框为整个控制器的view的一半宽度

第一步:先设置红色框相对于真个view水平居中



第二步:选中刚才设置的水平居中的约束,



xcode中选中,进行填写下面的公式




设置如下,表示父控件的中心坐标x值 = (redView.trailing(尾部)x+0)*1,所以下面的计算结果是redView的尾部的x坐标=父控件的中心坐标x



效果:




上面设置好了红色框后,即很容易设置蓝色框了

只需要同时选中红蓝框,设置它们等高,垂直居中,在单独设置红色边框的右边距离蓝色边框20



指定距离右边蓝色边框距离的设置如下:






0 0
原创粉丝点击