在Swift中将视图带到前面

时间:2017-10-18 10:22:14

标签: ios swift

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您只能修改public void SomeMethod() // EDIT: this is the OnLoaded Event for example. { if(IsNotInDesignMode()) // This is implemented somewhere else. { // I want this to be called in the Test Execution. DoSomething(); } } 概念中的[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var currentWindow = new taskMngrWndw(); Application.Run(currentWindow); Process[] processList = Process.GetProcesses(); foreach (Process proc in processList) { string processID = Convert.ToString(proc.Id); currentWindow.taskView.Items.Add(new ListViewItem(processID)); } currentWindow.taskView.Refresh(); } zPosition未公开此功能。然而它确实暴露了两种方法; CALayerUIView。这需要在您要移动的视图的超级视图上调用,并将您想要移动的视图作为参数。

另请注意,如果您只是在顶部视图中设置sendSubviewToBack:,它会将触摸传递到下方的视图。这可以节省视图位置的混乱。