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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何转移UIView并使用Swift以编程方式添加新的UIView?相关的知识,希望对你有一定的参考价值。

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

这是原始屏幕:

enter image description here

这是我想要的:

enter image description here

我的故事板:

enter image description here

答案

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

另一答案

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

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

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

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

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

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

以上是关于如何转移UIView并使用Swift以编程方式添加新的UIView?的主要内容,如果未能解决你的问题,请参考以下文章

如何移动 UIView 并使用 Swift 以编程方式放置新的 UIView?

以编程方式在 UIView 上添加 UITextField Swift

如何以编程方式将自定义 uiview 添加到视图控制器 SWIFT

如何在 Swift 中以编程方式从 UIView 中删除安全区域?

如何使用 XCTest 在以编程方式添加的 UIView 上测试 UILabel

在 UIImage 上添加 UIView - swift - 以编程方式