如何转移UIView并使用Swift以编程方式添加新的UIView?

问题描述 投票:0回答:2

我有一个包含我的数据的布局,但根据数据我需要更改视图的位置。我想在屏幕顶部放置一个UIView(UILabel,UITextField ...)并将布局向下移动,但我不知道如何做到这一点,我看到了一些文档和教程,但没有帮助我。我用故事板制作了我的屏幕。

这是原始屏幕:

enter image description here

这是我想要的:

enter image description here

我的故事板:

enter image description here

ios swift xcode uiview autolayout
2个回答
1
投票

如果您只想在堆栈视图的顶部添加视图,请使用stackView.insertArrangedSubview(newView, at:0)


0
投票

我建议您使用“将其他视图放在此处”设置屏幕,并在该视图上设置固定的高度约束。使下面的视图在“其他视图此处视图”的底部有一个固定的空间。

然后从“将其他视图放在这里”的高度约束控制拖动到视图控制器中。这将使约束成为出路。

现在编辑高度约束并将其常量设置为0.这会将该视图折叠为0高度,使其消失,其他视图向上移动。

然后,在代码中,当您希望显示“此处的其他视图”视图时,使用插座将该视图上的常量设置回其先前的非零值,然后在父视图上调用layoutIfNeeded()以更新视图基于更改约束的布局。

您还可以编写将“其他视图在此处”视图插入视图层次结构的代码,但这将涉及删除约束并在代码中添加约束,这有点痛苦。

通过调整视图上的高度约束,您可以轻松地来回显示/隐藏它。

© www.soinside.com 2019 - 2024. All rights reserved.