2017-10-18 21 views
-1

我有2个视图,我需要在特定条件下添加和移除另一个视图。问题是,当我添加视图,设置约束,并隐藏我不需要的,它会中断手势到其他视图。在Swift中将视图移到前面

是否有任何简单的方法可以将一个视图放到视图层次结构的前面,以便用户可以与之交互?之后,我需要对其他视图执行相同的操作,并降低第一个视图层次优先级。

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

+0

使用UIView.insertSubview(view at:position)。 –

回答

1

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

另请注意,如果您只是在顶视图上设置userInteractionEnabled = false,它会将触摸传递给它下面的视图。这可以节省视图的位置。

+0

什么是zIndex?从来没有听说过......“它确实暴露了两种方法”只有两种?真? –

+0

我的意思是'zPosition'。我的错。 –

1

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