iOS7应用开发9:autolayout自动布局

原创 2013年12月05日 21:14:02

【时间太紧张,追课的过程中感觉压力很大,时间不够用的问题相当严重。想单靠业余时间自学一门技术果真不是一件容易的事儿,就拿上节课的animation来说吧,文章里基本上只能记录了一下课程的大纲,很多具体的内容都完全没弄清楚,demo也只是完全按照课上的演示逐句敲好。等赶上进度后,肯定是要回来复习的,届时会尽可能细致地研究ios开发的细节问题。】

1、自动布局的概念:

自动布局会在不同的设备屏幕尺寸或者设备的摆放位置(垂直/水平),以及其他显示视图面积发生改变的时候,自动地设置显示的视图的位置。自动布局设置视图的位置更多地依赖于某种“规则”,而不是预先设置好的坐标点位置。这些所谓的“规则”,可以认为是某一个视图同其父视图或者其他兄弟视图之间的位置关系。

实现自动布局的api(或者说,某个类):NSLayoutConstraint;更方便地方法可以通过xcode 5可视化方法实现。

2、自动布局实现方法:

举例说明,在storyboard中,有两个视图,在垂直模式时一上一下;当方向调整为水平模式时,下面的视图可能会消失,如下图所示:

 

如果想对这个问题进行改进的话,比如我们想让这两个视图始终相对于屏幕处于一个固定的位置,如按键1位于左上角,按键2位于右下角。主要有三种方法:

(1)在设计视图时将视图紧贴蓝色的位置提示线,并如下图所示,选中“Reset to Suggested COnstraints in View Controller”


此时选中刚才所设置的view,在size inspector中将会出现两个constraints,如下图所示:


这两个限制条件将决定了在屏幕变化的时候该视图的位置,而其大小由其内部的文本属性决定(通常情况不要对label、button等添加视图尺寸限制)。设置完成后,再次改变设备模拟器的方向,显示结果如下图所示:


由此可知,这两个视图已经可以根据屏幕的变化自适应地调整位置了。

PS:如果限制条件设置错了,可以在storyboard中执行“Clear All Constraints in View Controller”来清除全部constraints,然后重新设置即可。

(2)对某一个处在中央的视图,选中之后,在storyboard中选择Add New Alignment Constraints,选择最下面的两项,并添加(Add 2 constraints),如下图所示。这样,所选中的视图将会始终位于屏幕的最中央。


若出现问题,如位置、大小不匹配等,会显示警告,可选择各种解决方法,如改变Frame,改变constraints等。一般系统提供的解决方法都能奏效。

如果改变了视图的位置而没有改变constraints,也会出现相应的警告。

(3)通过在两个视图之间ctrl+拖动的方法建立constraints:在出现的菜单中,选择二者位置关系的constraints,如下图所示:


除此之外,子视图和父视图之间,甚至子视图和自己之间也可以通过ctrl+拖动的方式建立联系。如下图所示:



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS AutoLayout自动布局中级开发教程(9)-VisualFormat可视化格式字符串构成

VisualFormat的精髓- 可视化的字符串如何构成? 当我们在使用 NSArray *hCons=[NSLayoutConstraint constraintsWithVisualFormat...

iOS AutoLayout自动布局中级开发教程(7)-底部顶部baseLine基线对齐

ios的视图如何对齐?底部对齐?顶部对齐?基线baseLine对齐?最简单的,使用storyboard即可快速完成

iOS AutoLayout自动布局中级开发教程(7)-底部顶部baseLine基线对齐

如何对多个view或者Button添加底部对齐顶部对齐等等类似的对齐约束呢?最简单的方法使用 storyboard,在后续的教程中将使用代码实现. 如下图,如何为这两个或者多个视图添加 底部对齐...

iOS AutoLayout自动布局中级开发教程(5)-修改约束的值,延迟加载

如何修改autolayout 约束的值? 目前我已知的方法有5种 1.修改frame 2.修改约束的constant值 3.使用VisualFormat 语言 4.使用 constraintWithI...

iOS AutoLayout自动布局中级开发教程(3)-等宽等高等中心

前面讲到了一些关于边界约束的知识,但那些基础知识来解决一些实际问题还是会有点力不从心的;所以我们需要更高级的设置约束的办法,设置等高等宽等中心: 见下图: 图中有3...

iOS AutoLayout自动布局中级开发教程(6)-淘宝客户端iPhone 6/6 Plus 设计·适配方案

关于iPhone6/6+适配问题一直有争议,今天小编专门为大家整理了相关的有效方案,希望对大伙儿有帮助!   移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头...

iOS开发技巧(autolayout自动布局)

autolayout自动布局技术在iOS6就已经推出了,但是因为很多人一开始不习惯使用xib编程,而是坚持使用代码布局控件,所以autolayout并没有普及的太快。但是现在随着越来越多的人开始使用x...

iOS AutoLayout自动布局中级开发教程(3)-等宽等高等中心

前面讲到了一些关于边界约束的知识,但那些基础知识来解决一些实际问题还是会有点力不从心的;所以我们需要更高级的设置约束的办法,设置等高等宽等中心: 见下图: 图中有3...

iOS AutoLayout自动布局中级开发教程(8)-VisualFormat可视化格式语言创建约束

如何使用visualFormat语言纯代码写约束呢?经过本人的学习,写出来与大家分享一下: 使用storyboard可以完成我们的大部分的布局需求,然而storyboard不是万能的,在对于后续的可维...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)