AutoLayout(四)

可视化约束 Visual format language(VFL)

 如下:

 [self.view addConstraint:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view1]-8-[view2]" options:NSLayoutFormatAlignAllLeading metrics:nil views:NSDictionaryOfVariableBindings(view1,view2)]];


 解释:创建由view1和view2组成的左对齐的一列,在它们之间保留8点间隔

 需要注意的是:
        V:[view1]-8-[view2] 此表达式如何解释?
        NSLayoutFormatAlignAllLeading ?为什么是这个枚举类型?


 1.
    VFL 语法介绍(和NSLayoutFormatOptions搭配使用)

水平或垂直放置     H: / V:    V:[View1]-5-[View2] 将View2放到其顶部距离View1底部15点位置
 视图    [item]  [view1] 
 父视图  |     H:|[view1]  使view1的宽度尺寸同父视图的一致
 关系  == / <= / >=  H:[view1]-(>=20)-[view2] 使view2的前缘距离view1后缘至少20点像素
 度量  metric  H:[view1(<=someWidth)]V:[view1]-mySpacing-[view2]  度量是键,someWidth和mySpacing必须在传递的度量字典中映射为NSNumber值
 齐平对齐    [item][item]  H:[view1][view2]   使View1的后缘和view2的前缘齐平
 固定间隔 [item]-gap-[item] gap为间隔的数值 V:[view1]-20-[view2]
 灵活间隔 [item]-(>=someValue)-[item]  根据需要,视图可以隔离,最少someValue的像素
 固定高度和宽度 [item(size)]  [view1(100)]
 最小宽度/高度和最大宽度/高度   [item(>=size)]  [view1(>=50)]
 同另一个视图匹配高度/宽度  [item(==item)]/[item(<=item)]/[item(>=item)]  [view1(==view2)] :使view沿着某个坐标轴的尺寸和view2一样
 和父视图对齐 |[item]    V:|[view1]
 相对于父视图的inset  |-[item]
 相对于父视图的自定义inset  |-gap-[item]  H:|-15-[view1]
 优先级: @value (value 从 0 到 1000)  [view1(<=50@20)]


 2. 选项 枚举类型     NSLayoutFormatOptions
    对齐掩码:
 NSLayoutFormatAlignAllTrailing
 NSLayoutFormatAlignAllLeading

 NSLayoutFormatAlignAllTop
 NSLayoutFormatAlignAllBottom
 NSLayoutFormatAlignAllRight
 NSLayoutFormatAlignAllLeft

 NSLayoutFormatAlignAllBaseline

 NSLayoutFormatAlignAllCenterY
 NSLayoutFormatAlignAllCenterX


    格式方向
 NSLayoutFormatDirectionRightToLeft
 NSLayoutFormatDirectionLeftToRight
 NSLayoutFormatDirectionLeadingToTrailing


 待续...

 请关注微博 ID: 枫一般低调

视频教程地址:http://v.youku.com/v_show/id_XMTI3NzE2ODQ5Ng==.html?f=25891909&from=y1.7-1.3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值