iOS自动布局NSLayoutConstraint

iOS自动布局NSLayoutConstraint
(1)自动布局使用可视化语言:VFL(Visual Format Language)

[NSLayoutConstraint 
constraintsWithVisualFormat:@"H:|-20@500-[_view1(==_view2)]-space-[_view2(==_view1)]-40-|"
options:NSLayoutFormatDirectionLeftToRight
metrics:@{@"space":@20}
views:NSDictionaryOfVariableBindings(_view1,_view2)
]

参数解释:
第一个参数:constraintsWithVisualFormat 使用VFL格式化的字符串,可以参见官方的帮助文档;

第二个参数:options 指定VFL中所有对象的布局属性和方向。举例:有2个视图使用VFL进行布局,可以使用NSLayoutFormatDirectionLeftToRight,表示从左到右布局;

第三个参数:metrics 度量字典,例如Format字符串中用到的space参数,这是我们在这个metrics里面声明space参数的key和数值;

第四个参数:views 指定约束的视图:Format字符串中用到了哪些view,就把这些view放到这个字典里。

VFL语言的规则:

a) “H” :表示水平方向,里面的view都是从左到右,或者从右到左排列,具体方向由options决定,默认从左到右
“V”:表示垂直方向,里面的view都是从上到下,或者从下到上排列;具体方向由options决定,默认从上到下

b) “|” 表示父view的边界;

c) “[]” 表示view,"()"表示尺寸,尺寸的类型由“H”和“V”决定,如果是“H”,则表示宽度,“V”表示高度,它们可以多个条件组合,中间使用逗号分隔,举例:H:[view(>=10, <=20)],表示view的宽度大于等于10且小于等于20;

d) “-” 表示间隙,表示相对父view,获取相邻两个view之间的距离,例如"H:|-10-[view]-10-|"表示子view左右两边距离父view距离都是10.

e) "@"表示优先级,就是自动布局时的优先级。举例:V:|-50@750-[view(55)]

(2)NSLayoutConstraint布局

[NSLayoutConstraint constraintWithItem:(id)item

attribute:(NSLayoutAttribute)attribute

relatedBy:(NSLayoutRelation)relation

toItem:(id)otherItem

attribute:(NSLayoutAttribute)otherAttribute

multiplier:(CGFloat)multiplier

constant:(CGFloat)constant]

1.参数说明:

第一个参数:指定约束左边的视图view1,将要约束view,参照物是view2

第二个参数:指定view1的属性attr1,比如约束宽,高,上下边距,左右边距之类的

第三个参数:指定左右两边的视图的关系relation,大于等于,小于等于,或等于

第四个参数:指定约束右边的视图view2 这个view就是参照物

第五个参数:指定view2的属性attr2 比如约束宽,高,上下边距,左右边距之类的

第六个参数:指定一个与view2属性相乘的乘数multiplier 比例系数多少倍,比如view1宽是view2的10倍,就填10

第七个参数:指定一个与view2属性相加的浮点数constant 偏移量,比如view1宽是view2的10倍还多20,这个就填20

依据的公式是:view1.attr1 = view2.attr2*multiplier +constant

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值