【问题标题】:Bring view to front in Swift在 Swift 中将视图置于最前面
【发布时间】:2017-10-18 21:07:50
【问题描述】:

我有 2 个视图,我需要在特定条件下添加和删除另一个视图。问题是,当我添加两个视图、设置约束并隐藏我不需要的视图时,它会中断对其他视图的手势。

是否有任何简单的方法可以将一个视图置于视图层次结构的前面,以便用户可以与之交互?之后,我需要对另一个视图做同样的事情,并降低第一个视图层次结构的优先级。

在其他问题中,我听说有可能改变 Z 坐标,也许有办法做到这一点来实现我的观点?

【问题讨论】:

  • 使用 UIView.insertSubview(查看位置:位置)。

标签: ios swift


【解决方案1】:

您只能在CALayer 的概念中修改zPositionUIView 不公开此功能。但是,它确实公开了两种方法; sendSubviewToBack:bringSubviewToFront:。这需要在您要移动的视图的父视图上调用,并将您要移动的视图作为参数。

还请注意,如果您只是在顶视图上设置userInteractionEnabled = false,它将向下传递到其下方的视图。这样可以避免弄乱视图的位置。

【讨论】:

  • 什么是 zIndex?从未听说过......“它确实公开了两种方法” 只有两个?真的吗?
  • 我的意思是zPosition。我的错。
【解决方案2】:

尝试使用bringSubviewToFront:sendSubviewToBack: 来处理此类情况。隐藏视图不会将其从视图堆栈中移除,也不会允许您与其下方的视图进行交互。希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多