VFL的使用
和http://jinblog.com/archives/520.html的文章两个例子完成的效果一样,注意格式
//
// ViewController.swift
// UIDynamic的使用
//
// Created by admin on 16/2/29.
// Copyright © 2016年 jin. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var viewA: UIView!
override func viewDidLoad() {
super.viewDidLoad()
self.constraintB()
}
func constraintB()
{
// 创建控件
let viewA = UIView()
viewA.translatesAutoresizingMaskIntoConstraints = false
viewA.backgroundColor = UIColor.blueColor()
self.view.addSubview(viewA)
let viewB = UIView()
viewB.translatesAutoresizingMaskIntoConstraints = false
viewB.backgroundColor = UIColor.brownColor()
self.view.addSubview(viewB)
// 创建约束
// 水平
let viewAh = NSLayoutConstraint.constraintsWithVisualFormat("H:|-30-[viewA]-30-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["viewA" : viewA])
// 垂直
let viewAv = NSLayoutConstraint.constraintsWithVisualFormat("V:|-30-[viewA(50)]-[viewB(==viewA)]", options: NSLayoutFormatOptions.AlignAllRight, metrics: nil, views: ["viewA" : viewA,"viewB" : viewB])
// 比例值,需要用构造方法来完成
let viewBwidth = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Width, multiplier: 0.5, constant: 0)
// 添加约束
self.view.addConstraint(viewBwidth)
self.view.addConstraints(viewAh)
self.view.addConstraints(viewAv)
// let viewB
}
func constaintA()
{
// 创建控件
let viewA = UIView()
viewA.translatesAutoresizingMaskIntoConstraints = false
viewA.backgroundColor = UIColor.blueColor()
self.view.addSubview(viewA)
let viewB = UIView()
viewB.translatesAutoresizingMaskIntoConstraints = false
viewB.backgroundColor = UIColor.brownColor()
self.view.addSubview(viewB)
// 创建约束
// 水平方向,左右有间距,要加“|”,并把间距用“-”分隔
let viewAh = NSLayoutConstraint.constraintsWithVisualFormat("H:|-30-[viewA]-[viewB(==viewA)]-30-|", options: NSLayoutFormatOptions.AlignAllBottom, metrics: nil, views: ["viewA" : viewA,"viewB" : viewB])
// 垂直方向,左边没有约束就不要加 “|”,直接固定数字,直接写数字,不要加等号
let viewAv = NSLayoutConstraint.constraintsWithVisualFormat("V:[viewA(50)]-30-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["viewA" : viewA])
self.view.addConstraints(viewAh)
self.view.addConstraints(viewAv)
// 没有对齐,传这个值就行
let viewBv = NSLayoutConstraint.constraintsWithVisualFormat("V:[viewB(==viewA)]", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["viewA" : viewA,"viewB" : viewB])
self.view.addConstraints(viewBv)
}
}