我有一个视图,其中一个视图包含两个标签,如下所示。从侧面到父视图,它们都是约束8'(灰色)。视图的大小基本上环绕2个Label。 (如Android中的wrap_content
)
当两者同时存在时,它应显示为
有时候其中一个会存在,我希望容器视图缩小如下
或
请注意,容器视图的大小应缩小以仅包装容器。
(注意:我是一名Android开发人员,开始学习一些iOS工作。通过显示其中一个Label,可以在Android中轻松实现上述功能,然后容器视图相应缩小高于预期的结果。)
但是,当我进行如下隐藏时
labelTwo.isHidden = true
显示为
当我这样做
labelOne.isHidden = true
它显示如下
我问了一下,似乎我必须手动快速设置隐藏标签的高度= 0,并以编程方式删除相关约束。我觉得对于我认为应该简单的事情来说似乎太复杂了。因此,询问周围是否有实现此目的的简单方法(例如,我们可以像Android一样使用填充而不是约束吗?在Android的视图中是否有GONE
功能?)
有没有一种方法可以轻松实现我想要的?
答案 0 :(得分:3)
您有两种简单的方法可以做到这一点。
1)使用UIStackView
2)使用高度限制
let heightConstraint = secondLabel.heightAnchor.constraint(equalToConstant: 0)
以后要显示视图时禁用高度限制
heightConstraint.isActive = false
答案 1 :(得分:0)
您还可以根据高度限制创建一个@IBOutlet并使用该变量。
@IBOutlet weak var someConstraint:NSLayoutConstraint!