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

jam*_*n34 29 uiview ios swift

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

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

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

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

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

iHu*_*ulk 56

用它来隐藏swift中的视图

viewVar.isHidden = true
Run Code Online (Sandbox Code Playgroud)


Ada*_*o13 26

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

获得视图的插座后,您可以执行以下操作: viewYouWantToHide.isHidden = true

  • ```@IBOutlet var yourStackView:UIStackView!yourStackView.hidden = true;``` (3认同)

Mid*_* MP 23

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

目标C.

隐藏:

[[self.view viewWithTag:1] setHidden:YES];
Run Code Online (Sandbox Code Playgroud)

显示:

[[self.view viewWithTag:1] setHidden:NO];
Run Code Online (Sandbox Code Playgroud)

在Swift中:

隐藏:

self.view.viewWithTag(1)?.isHidden = true
Run Code Online (Sandbox Code Playgroud)

显示:

self.view.viewWithTag(1)?.isHidden = false
Run Code Online (Sandbox Code Playgroud)

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


Amr*_*gry 12

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

view.isHidden = true
Run Code Online (Sandbox Code Playgroud)