Storyboard学习手记(二)——添加约束

控件布局


xcode的自动布局让iOS开发更加便利,但是也存在许多的弊端,跟纯代码比起来省去了许多计算坐标以及繁复的语句,但是有些人认为自动布局不如代码灵活,总是能听到有人说这个用代码做可以实现,用自动布局实现不了,或许是可以实现的,只是对这个了解不深,当然我也只能在这里写些基础的东西。

现在xcode默认使用自动布局,因此直接把控件拖进controller,再将其约束起来就可以了,这里要说的就是如何按照不同的需求去约束。
这里不能像web那样一个个div块整整齐齐的分出来,而是要用尽量少的控件去搭出自己想要的界面,在一定程度上减少app的负担,毕竟加载一个控件也是要时间的不是。

添加约束很多人喜欢直接拖线加,而storyboard上有快速添加约束的地方
添加约束

固定控件的位置
将控件放到storyboard上的时候,这个控件是不知道自己应该在哪里的,这时候就要去约束它的位置,告诉它应该在哪里。

约束位置主要有两种,一种是相邻边到父view的距离,这种布局最常用
相邻边约束

还有一种就是中线对齐,可以垂直线对齐也可以水平线对齐,这个线不一定居中使用,它可以任意偏移,但一定会是控件的中线
中线对齐

这两种方法可以交替使用,但是一定要将它的位置设置准确,不然就会报红。

告诉控件它的大小
固定了它的位置的时候,约束依然是不成立的,因为你只告诉它应该呆在哪里,而没有告诉他要占多少地方或者要跟谁保持距离。

这里同样主要有两种方法确定它的大小,一个是设置相邻边的距离,这里要注意一下,设置距离的时候不要与位置有重合,否则就不是完整的约束,依然是无效的。
相邻边加相邻边
中线加相邻边

另一个就是固定宽高了,直接告诉他宽和高是多少,然后呆在他该呆的位置,这也是完整的约束,当然这两种方式也是可以交替使用,怎样搭配就看具体需求了。
相邻边加宽高
中线加宽高

任何一个控件你给他约束了位置和大小,它就可以很稳定的呆在你想要的位置,当然这只是静态布局。

有些控件例如label是会根据内容自适应大小的,这就需要你根据需求去灵活使用约束了,顺便利用label来介绍一下约束的特性,就是大于和小于,当你布局好了,控件的约束默认情况是等于你给定的值,但是像label这种需要动的控件给一个固定值往往不太合适,因此就需要给定一个最大的宽度或高度让它自己在这个范围内调整大小,例如给label一个最大宽度,那么当它字数超过这个宽度能容纳的字数以后,多余的会不显示或换行,这个就牵扯到别的属性,这里就不作介绍了。
label约束

那么这个东西在哪里设置呢?选中你要修改的约束,然后在右边属性找到Relation,这个下拉框里有三个词条,分别是大于小于和等于,用你想用的吧,这里要注意的就是约束的长度,如果你选大于,那么这个长度就需要是最小值,如果选小于,那么这个长度就需要是最大值。
Ralation

约束暂时就想到这些,有遗漏的希望路过的前辈替我指出,程序的世界无边无际,永远都学不完。

猜你喜欢

转载自blog.csdn.net/qq_31284831/article/details/50696807