如何在一个UIView上设置两个不同UIViews之间的纵横比而不是侧面?

时间:2016-03-11 12:24:25

标签: ios xcode swift nslayoutconstraint

我有一个黄色的IReadOnlyList<T>和一个蓝色的UIView。黄色的高度是动态的并且变化。蓝色的高度总是比黄色的高两倍。如何设置约束来实现这一目标?有可能吗?

基本上:

如何设置两个UIView之间的纵横比?

3 个答案:

答案 0 :(得分:4)

当然是!您应该在这两个视图之间将约束设置为Equal Heights,然后将其乘数更改为1:22:1,具体取决于哪个视图是“第一个”。为了添加约束控制 - 从一个视图拖动到另一个视图。

constraint

答案 1 :(得分:1)

参考视图的高度约束。 当您将黄色UIView的高度更改为某个动态值x时,将蓝色UIView的高度约束更改为x / 2.

答案 2 :(得分:1)

enter image description here

  1. 设置AView的高度约束并使约束出口。

  2. 将BView的EqualHeight设置为AView。

  3. 将EqualHeight约束乘数设置为1:2。

  4. 根据需要更新高度限制。

    @IBAction func buttonToggleAViewHeightClicked(sender: UIButton) {
    
    if sender.selected {
        constraintHeightAView.constant = constraintHeightAView.constant - 200
        sender.selected = false
    } else {
        constraintHeightAView.constant = constraintHeightAView.constant + 200
        sender.selected = true
    }
    
        UIView.animateWithDuration(0.5) { () -> Void in
            self.view.layoutIfNeeded()
        }
    
    }