在整个屏幕上禁用用户互动

时间:2019-01-05 23:04:58

标签: ios swift uiwindow

我有一个主控制器,并在用户选择SORT时添加选择器视图。我想禁用除Picker Control(取消和完成按钮)之外的完整用户交互。我正在将选择器作为子视图添加到窗口。

我尝试在动画前后使用以下指令,但是它禁用了所有功能,包括选取器控件。

UIApplication.shared.beginIgnoringInteractionEvents()
UIApplication.shared.endIgnoringInteractionEvents()

还有其他解决方案可以在整个应用范围内禁用用户交互吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

由于选择器已添加到窗口的视图中,因此您可以在currentVC中完成此操作

self.view.isUserInteractionEnabled =  // true/false

在导航的同时,您也可以这样做

self.navigationController?.navigationBar.isUserInteractionEnabled =  // true/false

答案 1 :(得分:1)

您的尝试适用于UIApplication.shared,即整个应用程序。您可以尝试通过在要禁用的一个或多个视图上设置isUserInteractionEnabled属性来禁用一个窗口,一个视图或一系列视图。

但是请注意,您尝试的是非典型设计。用户通常应该能够点击屏幕上的任何内容。例如,如果用户点击左上方的“后退”按钮,则键盘应关闭,并显示上一个视图。

如果出于某种原因确实确实需要这种选择为模态,那么在此选择上提供模态视图控制器可能会更简单。