我是iOS开发,布局界面,适配不同尺寸的屏幕,就要对控件进行约束。我觉得约束的核心,即是相对布局控件。在我的实战经验中,将约束控件分为三种类型实现。各有使用场景,结合需要和自己的喜好使用。
第一种类型是:xib控件约束,通常将xib约束分为三种形式描述。
第一形式是:是autoSizing。也许会说,这都是过去式的东西了,为什么还要拿出来说。如果你所在的团队负责的项目是很早就上线,直到现在都在不断版本更新,那么,就可能存在一些很早创建类自带的xib文件是通过autoSize进行约束的。所以,了解一些,仍是有帮助的。
左图一,是开关部分。不勾选,即是autoSizing。 右图二,是约束操作部分。通过图标出的六根线来设置约束。右边的小红色区域,为约束设置后的效果图。
左图一 右图二
第二种形式是:autoLayout。将上述左图一的use Auto Layout 勾选上。左图三给出设置约束的工具。从右向左,第一个是Ressolve Auto Layout Issue,点击可以弹出一个框,框内上半部分为当前选中控件的约束操作。下半部分是对整个xib中控件的约束操作。第二个是Pin,弹出一个浮框,可对当前选中控件设置约束。第三个是Align,点击弹出一个浮框,对当前选中控件进行对齐约束。如水平对齐,垂直对齐等。其中,当前选中的控件,可以是一个,也可以是二个或以上。
左图三
左图四,是约束效果图,可查看对控件设置了那些约束。左图五,是约束包。和xib中控件的约束线是一一对应的。结合图四和图五,方便查找xib中控件的约束。
左图四 右图五
需要注意的是:点击Pin工具,设置当前选中控件的约束时,可能会出现左图六的现象,明明控件左右约束设置为0,但查看控件的左右离屏幕仍有间距。待程序运行起来后,发现间距还在。我最后发现,间距的来源是:在点击Pin工具,对控件的上下左右设置约束时,有一个选框,自动勾上了。去掉就可以了。如右图六。
左图五。 右图六
第三种形式,是sizeClass,最大的特点是,适配不分屏幕尺寸,只有大小屏的概念。目前,我在开发中没有用到,仅有理论上的理解。如需深入了解,请参考其他资料。
另外,两种控件的约束类型为:masonry类为纯代码布局提供约束, 和frame。后续~