美文网首页
iOS 纯代码原生自动布局autolayout 和 vfl

iOS 纯代码原生自动布局autolayout 和 vfl

作者: 秋叶红90 | 来源:发表于2021-03-28 13:24 被阅读0次

VFL 介绍

Visual Format Language 可视化格式语言

是苹果公司为了简化Autolayout的编码而推出的抽象语言

VFL 语法

H: 水平方向

V: 垂直方向

| 边界

[ 视图名称 ]

( 常数值 )

== >= <= 关系

- 距离

VFL 示例
   H:|-0-[button]-0-|

   按钮 距离 左右 两边为 0

   V:|-0-[button]-0-|

   按钮 距离 上下 两边为 0

   H:|-20-[button(50)]

   按钮 距离 左 边 20

   按钮宽度 50

   V:[button(40)]-20-|

   按钮 距离 底 边 20

   按钮高度 40

  VFL 没有提供居中对齐的方式,也不支持运算符

另外如何居中显示,就要用的autolayout 结合了例子如下

            let view1 = UIView.init()
            view1.backgroundColor = UIColor.red
            view1.translatesAutoresizingMaskIntoConstraints = false
            
            self.view.addSubview(view1)
            let h = NSLayoutConstraint.constraints(withVisualFormat: "H:[view1(100)]", options: [NSLayoutConstraint.FormatOptions.alignAllCenterY], metrics: nil, views: ["view1" : view1])
            let v = NSLayoutConstraint.constraints(withVisualFormat: "V:|-[view1(100)]", options: [NSLayoutConstraint.FormatOptions.alignAllCenterX], metrics: nil, views: ["view1" : view1])
            view.addConstraints(h)
            view.addConstraints(v)
            
            view.addConstraint(NSLayoutConstraint.init(item: view1, attribute: NSLayoutConstraint.Attribute.centerX, relatedBy: NSLayoutConstraint.Relation.equal, toItem: view, attribute: NSLayoutConstraint.Attribute.centerX, multiplier: 1, constant: 0))


相关文章

网友评论

      本文标题:iOS 纯代码原生自动布局autolayout 和 vfl

      本文链接:https://www.haomeiwen.com/subject/ncyphltx.html