[Auto Layout] 제한된 콘센트 연결[Xcode8.x]

실제로 제한은 부품처럼 콘센트를 연결할 수도 있다.자기 노트라서 실었어요.

코드에서 제약을 사용하는 간단한 설명


노란색 레이블의 가로 치수와 슈퍼 뷰 사이의 위쪽 경계를 처리하고 있습니다.녹색 레이블은 노란색 레이블의 여백 및 사각형 Bottom과 지정되므로 노란색 레이블의 이동과 함께 이동합니다.

ViewController.swift

//
//  ViewController.swift
//  Constraint
//

import UIKit

class ViewController: UIViewController {


    var toggle1:Bool = true
    var toggle2:Bool = true
    var toggle3:Bool = true

    @IBOutlet weak var label1:UILabel!

    @IBOutlet var constraintLabelWidth:NSLayoutConstraint!
    @IBOutlet var constraintLabelTopMargin:NSLayoutConstraint!

    @IBAction func changeConstraint(_ sender:UIButton){

        toggle1 = toggle1 ? false : true
        let value:CGFloat = toggle1 ? 100 : -100

        constraintLabelWidth.constant += value

    }

    @IBAction func changeConstraintWithAnimation(_ sender:UIButton){

        toggle2 = toggle2 ? false : true
        let value:CGFloat = toggle2 ? 100 : -100

        self.view.removeConstraint(constraintLabelWidth)
        constraintLabelWidth.constant += value
        label1.addConstraint(constraintLabelWidth)
        UIView.animate(
            withDuration: 1.0,
            delay:0.5,
            options:UIViewAnimationOptions.curveEaseOut,
            animations: {() -> Void in
                self.view.layoutIfNeeded()
            },
            completion: nil
        )
    }

    @IBAction func changeConstraintTopMarginWithAnimation(_ sender:UIButton){

        toggle3 = toggle3 ? false : true
        let value:CGFloat = toggle3 ? 100 : -100

        self.view.removeConstraint(constraintLabelTopMargin)
        constraintLabelTopMargin.constant += value
        view.addConstraint(constraintLabelTopMargin)
        UIView.animate(
            withDuration: 0.5,
            delay:0.0,
            options:UIViewAnimationOptions.curveEaseOut,
            animations: {() -> Void in
                self.view.layoutIfNeeded()
            },
            completion: nil
        )
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}


출구 조작 연결

좋은 웹페이지 즐겨찾기