代码之家  ›  专栏  ›  技术社区  ›  Shift72

Swift:将视图从堆栈视图移到前面

  •  3
  • Shift72  · 技术社区  · 7 年前

    我得到了一个带有视图的堆栈视图:1,2,3,4和5

    我曾尝试在视图层次中将view3移到view4上,但这只是交换了它们在堆栈视图中的位置。

    enter image description here

    3 回复  |  直到 7 年前
        1
  •  5
  •   Ole Begemann    7 年前

    UIStackView documentation :

    视图的顺序 subviews 数组定义子视图的Z顺序。如果视图重叠,索引较低的子视图将显示在索引较高的子视图后面。

    arrangedSubviews 数组也位于堆栈视图的 数组,您应该能够使用标准 UIView

    • bringSubview(toFront:)
    • sendSubview(toBack:)
    • exchangeSubview(at:withSubviewAt:)

    我不知道这是否可以在Interface Builder中实现。

        2
  •  1
  •   Duncan C    7 年前

    使用从堆栈视图中删除图像,并将其添加到包含堆栈视图的同一视图中作为子视图 addSubview(_:) . 这将把它置于所有其他视图之上。你也可以使用 insertSubview(_:aboveSubview:) 将其直接插入堆栈视图上方。

        3
  •  0
  •   milczi    4 年前

    您可以在UIViewController中拥有IBOutlet属性,但在视图层次结构中,它被放置在UIStackView中。

    stackView.bringSubviewToFront(myView)

    self.view.bringSubviewToFront(myView)