NSLayoutConstraint 使用详解 VFL使用介绍

 

注意  

使用前必须先取消所有的你想设置View 的 Autoresizing 属性 因为 Autoresizing  Layout不能共存  系统默认是 Autoresizing

 for v in subviews {
            v.translatesAutoresizingMaskIntoConstraints=false
        }
  • 自动布局核心公式
view1.attr1 = view2.attr2 * multiplier + constant
  • 自动布局构造函数
NSLayoutConstraint(item: 视图, 
    attribute: 约束属性, 
    relatedBy: 约束关系, 
    toItem: 参照视图, 
    attribute: 参照属性, 
    multiplier: 乘积, 
    constant: 约束数值)
  • 如果指定  约束

    • 参照视图设置为 nil
    • 参照属性选择 .NotAnAttribute
  • 自动布局类函数

NSLayoutConstraint.constraintsWithVisualFormat(VLF公式, 
    options: [], 
    metrics: 约束数值字典 [String: 数值], 
    views: 视图字典 [String: 子视图])
  • VFL 可视化格式语言

    • H 水平方向
    • V 垂直方向
    • | 边界
    • [] 包含控件的名称字符串,对应关系在 views 字典中定义
    • () 定义控件的宽/高,可以在 metrics 中指定
  // icon布局  上下左右居中
        addConstraint(NSLayoutConstraint(item: iconView, attribute: .centerX,
            relatedBy: .equal,
            toItem: self,
            attribute: .centerX,
            multiplier: 1.0,
            constant: 0))
        addConstraint(NSLayoutConstraint(item: iconView,    attribute: .centerY,
             relatedBy: .equal,
             toItem: self,
             attribute: .centerY,
             multiplier: 1.0,
             constant: -50))

 
   maskiconView 和屏幕等宽  和屏幕顶部对齐 距离  loginBtn顶部 -35 距离
  let viewDic : [String : Any] = ["maskiconView":maskiconView,"loginBtn":loginBtn]
        let metricDic = ["spacing":-35]
        
        addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[maskiconView]-0-|",
              options: [],
              metrics: nil,
              views: viewDic))
        
        addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[maskiconView]-(spacing)-[loginBtn]",
              options: [],
              metrics: metricDic,
              views: viewDic))

 

转载于:https://www.cnblogs.com/ZhangShengjie/p/6808609.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值