2017-04-21 54 views
0

從上到下有三種視圖:redView,yellowView,blueView。 我想隱藏yellowView並更改blueView的約束,以便讓blueView在redView下面。 圖片低於: 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

您需要設置高度限制爲黃色視圖,並採取IBOutlet中的yellowView其高度約束和修改它按照隱藏/顯示不變。

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 

     } 
相關問題