IOS 学习---storyboard 自动布局

autoResizing:布局

一共六条约束。spa

四周的四条约束:用于保证和其余视图的距离保持不变(若是勾选保持不变)code

中间的两条约束:用因而否容许该视图能够缩放(若是勾选,则能够缩放)继承

缺陷:若是在一个父视图上添加多个子视图的时候,须要让两个子视图存在某种约束的时候,不怎么可能实现ip

经过代码实现autoResizing字符串

view.autoresizingMask = UIViewAutoresizingNone;//默认不进行自动布局
/*
默认不进行自动布局
UIViewAutoresizingNone
设置表示可伸缩,至关于NIB文件设置不勾选   UIViewAutoresizingFlexibleLeftMargin
UIViewAutoresizingFlexibleRightMargin        UIViewAutoresizingFlexibleTopMargin  UIViewAutoresizingFlexibleBottomMargin
设置表示可伸缩,至关于NIB文件设置勾选
设置横向能够缩放
UIViewAutoresizingFlexibleWidth  
设置纵向能够缩放     UIViewAutoresizingFlexibleHeight
*/

autoLayout:重点it

一、使用autoLayout后,frame失效io

黄色(警告):绘制的视图和添加约束后应该显示的位置不一致,不影响显示结果(使用update frame更新 frame值)class

红色(警告):缺乏约束,约束冲突date

update frame:修改frame,以约束显示视图

update Constraint:修改约束,以frame显示视图

二、代码建立约束

使用代码建立autoLayout约束的时候,首先应该把autoResizing关掉

 view.translatesAutoresizingMaskIntoConstraints =NO;

建立方式

NSLayoutConstraint * right = [NSLayoutConstraint constraintWithItem:view
                                 attribute:NSLayoutAttributeRight
                                 relatedBy:NSLayoutRelationEqual
                                    toItem:self.view
                                 attribute:NSLayoutAttributeRight
                                multiplier:1
                                  constant:-90];

三、添加多个约束

思路:水平的视图当作一组,垂直的视图当作一组

VFL的语法总结:

(1)控件使用”[ ]”括起来

(2)控件之间只用”-”

(3)使用”H/V”表示方向,H:水平 V:垂直

(4)使用”|”表示父视图的边界

(5)对视图自身显示的时候使用”( )”,若是条件有多个用”,”隔开     [button(>= 50,<= 100)]

建立VFL字符串

    水平方向H:

    竖直方向V:

NSString *str =  @"H:|-20-[leftView]-20-[rightView(==leftView)]-20-|"

SizeClasses

使用SizeClasses必须使用Auto Layout

iOS8推出,iOS8以前的不能使用

一、将屏幕分为九种状况
宽:紧凑(compact)任意(any)宽松(regular)

高:紧凑(compact)任意(any)宽松(regular)

注意:若是在any状况下添加约束,会被”继承”

之后添加约束,最好别在含有any的状况下设置

相关文章
相关标签/搜索