如何使用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)