如何使用swift显示和/或隐藏子视图

所以我在我的故事板中创建了一个ViewControl,它有3个子视图。 每个表示我想要显示的不同视图,具体取决于在上一个屏幕(NavControl)上选择的表行。 我首先检查通过Attributes Inspector的“hidden”属性隐藏的所有子视图。 每个视图中的所有对象都不是隐藏的,而是被隐藏的,因为子视图本身是隐藏的(显然)。 我想我可以使用tag属性我给了三个子视图中的每个子标签一个标签(0,1和2),但是无法弄清楚如何使用它(以防万一这对我来说很有用)如何做到这一点我想在这里提到它。

那么,我如何显示然后隐藏这些子视图? 我不想在子视图中浏览每个对象并将其隐藏属性切换为true / false我觉得我应该能够“显示/隐藏”整个子视图。 从而实现相同的结果,但更简洁。

我找不到任何可以通过网络搜索或stackoverflow搜索帮助我的东西。

我的代码非常简单。 我捕获在上一个屏幕中选择的行,并将其传递给包含子视图的详细信息屏幕上的变量。 我知道这是有效的,因为我在详细信息屏幕viewDidLoad函数上设置了println()。 所以现在我所要做的就是进入每个条件并告诉它显示和/或隐藏哪个子视图。

谢谢,我感谢所有这些社区的帮助! 没有它,我会迷失方向。

您应该为三个子视图中的每一个创建IBOutlet 。 然后,您可以直接从这些引用中显示/隐藏它们中的每一个。 如果隐藏视图,它将自动隐藏其子视图。

用它来隐藏swift中的视图

 viewVar.isHidden = true 

如果每个视图都有标签,则可以使用以下方法隐藏和显示它们:

目标C.

隐藏:

 [[self.view viewWithTag:1] setHidden:YES]; 

显示:

 [[self.view viewWithTag:1] setHidden:NO]; 

在Swift中:

隐藏:

 self.view.viewWithTag(1)?.hidden = true 

显示:

 self.view.viewWithTag(1)?.hidden = false 

注意:1替换为您的标签值。

但isHidden的事实是检查状态的命名约定,并且是一个getter方法但是尽管在swift中我们使用它作为setter和getter属性

 view.isHidden = true 

在此处输入图像描述

您可以轻松地将UIView的大小约束常量更改为0,而无需添加大小约束的IBOutlet属性。 GoneVisible支持iOS,用Swift编写。

·不见了。

 view.gone() 

·可见。

 view.visible() 

·设置为Gone时,将空间约束常量设置为0。

 view.gone(spaces: [.trailing]) 

·“消失”,您可以指定它是垂直还是水平。 它在制作动画时很有用。

 view.gone(axis: .vertical)