【问题标题】:How do I show and/or hide a subview using swift如何使用 swift 显示和/或隐藏子视图
【发布时间】:2015-03-14 13:09:05
【问题描述】:

所以我在我的故事板中创建了一个 ViewControl,它有 3 个子视图。每个代表我想显示的不同视图,具体取决于在前一个屏幕 (NavControl) 上选择了哪个表格行。我首先检查通过属性检查器的“隐藏”属性隐藏的所有子视图。每个视图中的所有对象都没有隐藏,而是因为子视图本身被隐藏(显然)而被隐藏。认为我可以使用我给三个子视图中的每一个一个标签(0、1和2)的标签属性,但不知道如何使用它(以防万一这对我提供一个选项很有用关于如何做到这一点,我想在这里提一下)。

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

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

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

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

【问题讨论】:

    标签: ios swift uiview


    【解决方案1】:

    使用它在 swift 中隐藏视图

    viewVar.isHidden = true
    

    【讨论】:

    • 已隐藏。请更正外壳以确保准确性。 :)
    • 谢谢,这对我使用 swift 3 在 xCode 8 上有效。
    【解决方案2】:

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

    一旦你有了视图的出口,你就可以这样做:

    viewYouWantToHide.isHidden = true
    

    【讨论】:

    • @IBOutlet var yourStackView: UIStackView! yourStackView.hidden = true;
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      然而事实上 isHidden 是一个用于检查状态的命名约定并且是一个 getter 方法 但尽管如此,我们还是将它用作 setter 和 getter 属性

      view.isHidden = true
      

      【讨论】:

        猜你喜欢
        • 2019-07-23
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-22
        • 1970-01-01
        相关资源
        最近更新 更多