我有 2 个视图,我需要在特定条件下添加和删除另一个视图。问题是,当我添加两个视图、设置约束并隐藏我不需要的视图时,它会中断对其他视图的手势。
有没有简单的方法可以将一个视图带到视图层次结构的前面,以便用户可以与之交互?之后,我需要对另一个视图做同样的事情,并降低第一个视图层次结构优先级。
在其他问题中,我听说了更改 Z 坐标的可能性,也许有一种方法可以做到这一点来实现我的观点?
您只能在CALayer
的概念中修改zPosition
。 UIView
不会公开此功能。但是,它确实公开了两种方法; sendSubviewToBack:
和bringSubviewToFront:
.这需要在要移动的视图的超级视图上调用,并将要移动的视图作为参数。
另请注意,如果您只是在顶部视图上设置userInteractionEnabled = false
,它会将触摸向下传递到其下方的视图。这样可以避免弄乱视图的位置。
尝试使用 bringSubviewToFront:
和 sendSubviewToBack:
来处理这种情况。隐藏视图不会将其从视图堆栈中删除,也不允许您与其下方的视图进行交互。希望这对您有所帮助。