如果父视图的高度发生更改,则自动布局如何将子视图保留在父视图的底部

时间:2016-08-11 20:05:50

标签: ios swift

我有一个父视图,最初它的高度为250,在该视图的底部我有一个标签,它有底部和左边的约束我希望这个标签始终保持在这个蓝色视图的底部但是在代码中我改变了蓝色视图的高度,标签不会粘在视图的底部

Image View Controller

我正在使用以下代码更改高度

greyView.frame.size.height = greyView.frame.size.height + 200;

如何将标签保持在蓝色视图的底部,即使蓝色视图的高度也会改变???

我试图重新添加标签底部常量值,但它没有深入到底部

@IBAction func buttonClicked(sender: UIButton) {

    greyView.frame.size.height = greyView.frame.size.height + 200;

    bottomMargin.constant = 0;

}

我在标签

中添加了以下约束

Label contraints

如果我在故事板标签中更改蓝色视图的高度,我在故事板中没有任何问题来到底部但是当我从代码标签更改高度时不会到底

它显示像这样.. enter image description here

2 个答案:

答案 0 :(得分:0)

尝试设置这些约束:

enter image description here

右边和底部固定在父母身上,体重和身高取决于你,重要的是底部和右边。

您可以忽略我的值,因为它只是一个示例

答案 1 :(得分:0)

有很多方法可以做到这一点。我不建议以编程方式更改标签视图的高度。将高度约束设置为按钮> =到它首次绘制时的当前量。 这样,当您更改蓝色视图的高度时,它将展开。您对该按钮有哪些其他限制?

您现在发出的是,按钮的约束使视图保持特定大小。

编辑#1 所以我误解了你的问题。我自己尝试过,并没有足够的时间来使用约束来提出一个好的解决方案。我禁用了约束,只使用自动调整遮罩并将其设置在底部并且它正在移动(见截图)。约束在这里做了一些棘手的事情。当我回到家时,我会尽力让你找到更好的解决方案。 Autoresizing