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

时间:2015-01-16 00:08:45

标签: ios swift uiview

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

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

我无法通过网络搜索或stackoverflow搜索找到任何可以帮助我的内容。

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

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

4 个答案:

答案 0 :(得分:52)

使用此选项隐藏swift中的视图

viewVar.isHidden = true

答案 1 :(得分:21)

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

目标C

隐藏:

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

显示:

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

在Swift中:

隐藏:

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

显示:

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

注意:1替换为您的代码值。

答案 2 :(得分:20)

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

一旦有了视图的插座,就可以这样做: viewYouWantToHide.isHidden = true

答案 3 :(得分:10)

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

view.isHidden = true