在 Swift 中将视图带到前面



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

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

在其他问题中,我听说了更改 Z 坐标的可能性,也许有一种方法可以做到这一点来实现我的观点?

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

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

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

最新更新