通过代码使用autolayout

//
//  ViewController.swift
//  autolayout-代码
//
//  Created by zhang on 16/2/29.
//  Copyright © 2016年 jin. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.constraintB()
    }
    func constraintB()
    {
        // 创建view
        let viewA = UIView()
        viewA.backgroundColor = UIColor.redColor()
        viewA.translatesAutoresizingMaskIntoConstraints = false
        let viewB = UIView()
        viewB.backgroundColor = UIColor.grayColor()
        viewB.translatesAutoresizingMaskIntoConstraints = false
        self.view.addSubview(viewA)
        self.view.addSubview(viewB)

        let viewAleft = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Left, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Left, multiplier: 1.0, constant: 30)
        let viewAright = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Right, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Right, multiplier: 1.0, constant: -30)
        let viewAtop = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 30)
        let viewAheight = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 60)

        let viewBright = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Right, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Right, multiplier: 1.0, constant: 0)
        let viewBheight = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Height, multiplier: 1.0, constant: 0)
        let viewBwidth = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Width, multiplier: 0.5, constant: 0)
        let viewBtop = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 30)
        self.view.addConstraints([viewBwidth,viewBheight,viewBright,viewBtop])
        self.view.addConstraints([viewAleft,viewAright,viewAtop,viewAheight])
    }
    func constraintA()
    {
        // 创建view
        let viewA = UIView()
        viewA.backgroundColor = UIColor.redColor()
        viewA.translatesAutoresizingMaskIntoConstraints = false
        let viewB = UIView()
        viewB.backgroundColor = UIColor.grayColor()
        viewB.translatesAutoresizingMaskIntoConstraints = false
        self.view.addSubview(viewA)
        self.view.addSubview(viewB)
        // 创建约束
        // 左
        let viewAleft = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Left, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Left, multiplier: 1, constant: 30)
        // 下
        let viewAbottom = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: -30)
        // 宽度
        let viewAwidth = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: viewB, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0)
        // 高度
        let viewAheight = NSLayoutConstraint(item: viewA, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 50)
        // 右
        let viewBright = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Right, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Right, multiplier: 1, constant: -30)
        // 下
        let viewBbottom = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0)
        // 高
        let viewBheight = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: 0)
        // 左
        let viewBleft = NSLayoutConstraint(item: viewB, attribute: NSLayoutAttribute.Left, relatedBy: NSLayoutRelation.Equal, toItem: viewA, attribute: NSLayoutAttribute.Right, multiplier: 1, constant: 30)
        // 添加约束
        self.view.addConstraints([viewAleft,viewAbottom,viewAheight,viewAwidth])
        self.view.addConstraints([viewBbottom,viewBright,viewBheight,viewBleft])
    }
}

标签: swift, autolaout

添加新评论