2017-04-21 2 views
0

위에서 아래로 3 개의보기가 있습니다 : redView, yellowView, blueView. blueView를 redView 아래에두기 위해 yellowView를 숨기고 blueView의 제약 조건을 변경하고 싶습니다. 그림은 다음과 같습니다 : 는 this picture is original this picture is what I want 코드는 다음과 같습니다 :Snapkit을 사용하여 다른보기를 숨길 때보기의 제약 조건을 업데이트하는 방법?

private lazy var redView: UIView = { 
    let redView = UIView() 
    redView.backgroundColor = UIColor.red 
    return redView 
}() 
private lazy var yellowView: UIView = { 
    let yellowView = UIView() 
    yellowView.backgroundColor = UIColor.yellow 
    return yellowView 
}() 
private lazy var blueView: UIView = { 
    let blueView = UIView() 
    blueView.backgroundColor = UIColor.blue 
    return blueView 
}() 
override func viewDidLoad() { 
    super.viewDidLoad() 
    view.addSubview(redView) 
    view.addSubview(yellowView) 
    view.addSubview(blueView) 
    redView.snp.makeConstraints { (make) in 
     make.top.left.right.equalTo(view) 
     make.height.equalTo(40) 
    } 
    yellowView.snp.makeConstraints { (make) in 
     make.top.equalTo(redView.snp.bottom) 
     make.left.right.height.equalTo(redView) 
    } 
    blueView.snp.makeConstraints { (make) in 
     make.top.equalTo(yellowView.snp.bottom) 
     make.left.right.height.equalTo(yellowView) 
    } 

}

if yellowView.isHidden == true { 
     //how is the code? 
    } else { 
     //how is the code? 
    } 

답변

0

당신은 노란색보기 설정 높이 제약 조건을 필요로하고 yellowView의 높이 제한을 위해 함께 IBOutlet을 수정 hide/show에 따른 상수.

if yellowView.isHidden == true { 
      //how is the code? 
      ibHeightOutletOfYellow.constant = 0; // hide here 
     } else { 
      //how is the code? 
      ibHeightOutletOfYellow.constant = 50; // as per your needed 

     } 
관련 문제