iOS:隐藏内容标签后,如何使容器视图自动缩小其高度?

时间:2019-04-05 12:07:23

标签: ios swift xcode

我有一个视图,其中一个视图包含两个标签,如下所示。从侧面到父视图,它们都是约束8'(灰色)。视图的大小基本上环绕2个Label。 (如Android中的wrap_content

enter image description here

当两者同时存在时,它应显示为

enter image description here

有时候其中一个会存在,我希望容器视图缩小如下

enter image description here

enter image description here

请注意,容器视图的大小应缩小以仅包装容器。

(注意:我是一名Android开发人员,开始学习一些iOS工作。通过显示其中一个Label,可以在Android中轻松实现上述功能,然后容器视图相应缩小高于预期的结果。)

但是,当我进行如下隐藏时

labelTwo.isHidden = true

显示为

enter image description here

当我这样做

labelOne.isHidden = true

它显示如下

enter image description here

我问了一下,似乎我必须手动快速设置隐藏标签的高度= 0,并以编程方式删除相关约束。我觉得对于我认为应该简单的事情来说似乎太复杂了。因此,询问周围是否有实现此目的的简单方法(例如,我们可以像Android一样使用填充而不是约束吗?在Android的视图中是否有GONE功能?)

有没有一种方法可以轻松实现我想要的?

2 个答案:

答案 0 :(得分:3)

您有两种简单的方法可以做到这一点。

1)使用UIStackView

2)使用高度限制

let heightConstraint = secondLabel.heightAnchor.constraint(equalToConstant: 0)

以后要显示视图时禁用高度限制

heightConstraint.isActive = false

答案 1 :(得分:0)

您还可以根据高度限制创建一个@IBOutlet并使用该变量。

@IBOutlet weak var someConstraint:NSLayoutConstraint!