1、iOS中的布局分为哪几种?
AotuLayout(自动布局) 、 Aoturesizing (自动伸缩)
使用:
• autoresizing属性,主要适用于一个控件和自己父控件之间的关系
• autolayout才真正可以在任意两个控件中建立关系。
1 、autoresizing
autoresizing是UIView的属性,一直存在,使用也比较简单,但是没有autolayout那样强大。如果你的界面比较简单,要求的细节没有那么高,那么你完全可以使用autoresizing去进行自动布局。
重点记忆:
autoresizing需要注意的是 storyboard中设置的约束和手码中设置的约束是相反的。 storyboard图形页面里点的右边的线和下边的线的意思是“固定”
而手码中常用的autoresizingMasks属性中的枚举都是Flexible可“伸缩”的。 所以假如想要让右边和下边的距离固定,在代码中应该设置左边和上边的可伸缩约束。
在storyboard中设置一般都是 :
只需要把使用代码和使用Storyboard设置autoresizing,
-------------------------------------------------------------------------------------------------------------------------
在今后的学习中重点是antoLayout布局
2、AotuLayout 是iOS6之后出现的 (注意理解 相对的概念)
Auto Layout中文翻译过来意思是自动布局,通过内定的Constraint(约束)和各项条件来计算出合理的布局.而这个合理的布局,符合我们的的预期和意图.
手写代码 默认要把 :autoresizingMasks
_view1.translatesAutoresizingMaskIntoConstraints =
NO;
用来禁止AutoresizingMask转换成AutoLayout,简单来说,Autoresizing和AutoLayout用的不是一套东西,但是默认情况下是相互转换的,这里我们要指定使用AutoLayout系统,所以要禁止自动转换
AutoLayout
1:理解概念
Auto Layout中文翻译过来意思是自动布局,通过内定的Constraint(约束)和各项条件来计算出合理的布局.而这个合理的布局,符合我们的的预期和意图.
将我们想象中的结果展现出来.Constraint的设定非常灵活,实现一种布局的方法可以通过多Constraint套来完成.
以下几点是我们在开始使用之前必须弄清楚的事情:
1:我们要抛弃以往旧的布局方式不再去关注View的Frame,Center,和autoresizing. 因为这些坐标和大小的定位都可以通过来Auto Layout完成.
2:理解每一种Constraint的含义,否则,当你去看别人的实现的Constraint时,就会有种看天书的感觉.
3:按意图设计,一切按我们理想中的效果去布局,只要约束设定的合理,就一定能够完成目标布局.
二、autoLayout的两种实现方式
1、通过storyboard 去实现 ,
2、纯代码的实现
三 、在项目中使用纯代码去实现 autoLayout
1、OC中的方法
1.- (void)addConstraint:(NSLayoutConstraint *)constraint NS_