最近一直再看,《IOS7 Development Recipes》,再第三章讲到自动布局。通过这章的学习,让我对自动布局有了新的认识,之前一直手写界面,自认为,这样灵活,但是,看过这章,就改变了我的想法了。特别再新的iphone6出来。如果继续使用之前,代码根据两个屏幕尺寸,根本改变Frame。工作量肯定很大。
现简单总结如下:
constraint的原理是对某个控件进行限制,而不是硬编码。举个最近简单的例子,如,一个button,对它的限制是距离左右边边界的距离是20p,距离上下边界的距离是20p。这样,自然不需要再对button的frame进行设置了。而且,不管你的屏幕尺寸是多少,横屏还是竖屏。
通过xib,storyboards,设计,有两种方法。
一,按住ctrl键,鼠标从空白处,拖拽到某一个控件
就会弹出菜单。选择,第一个Buttom Space to Bottom Layout Guide,即 设置最下方到button的距离固定
一个完整的约束
如果,你感觉这样布局,有点复杂,可以使用另一种方式来布局:
这次,我们拖入一个segment button。点击最下方的红色框选中的按钮,pin menu。可以看到,通过这个方式,可以设置两个按钮之间的距离。把需要约束的红色虚线,点击改为红色实线,如下图
然后,点击 Add 4 Contraints,即可。
使用这种方式,最容易犯的错误是:
1、约束条件不够。2、约束出现冲突
可以很简单的理解。就不再举例说明。
简单说一下,调试的方法:
运行应用,点击暂停,输入:po [[UIWindow keyWindow] _autolayoutTrace]
另一种,使用代码约束,即可视化语言(ps:没学会)。
个人见解,如有错误请指出。
转载请注明
转自:http://blog.csdn.net/ralbatr/article/details/39229045