如何使用 swift 显示 and/or 隐藏子视图

How do I show and/or hide a subview using swift

所以我在故事板中创建了一个 ViewControl,它有 3 个子视图。每个代表我想要显示的不同视图,具体取决于在上一个屏幕 (NavControl) 上选择的 table 行。我从检查属性检查器的 'hidden' 属性隐藏的所有子视图开始。每个视图中的所有对象都没有隐藏,但被隐藏是因为子视图本身是隐藏的(很明显)。我想我可以使用 tag 属性,我已经为三个子视图中的每一个都指定了一个标签(0、1 和 2),但也不知道如何使用它(以防万一这对我提供一个选项很有用如何做到这一点我想在这里提到它)。

那么,到底如何显示和隐藏这些子视图?我不想遍历子视图中的每个对象并将其隐藏的 属性 切换为 true/false 我觉得我应该能够 'show/hide' 整个子视图。从而达到相同的结果,但更简洁。

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

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

感谢我感谢所有这些社区的帮助!没有它我会迷路的。

您应该为三个子视图中的每一个创建 IBOutlet。然后您可以直接从这些参考文献中 show/hide 它们中的每一个。如果您隐藏一个视图,它会自动隐藏它的子视图。

有了视图的出口后,您可以这样做:

viewYouWantToHide.isHidden = true

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

Objective 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 替换为您的标签值。

使用它隐藏 swift

中的视图
viewVar.isHidden = true

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

view.isHidden = true