在屏幕的某些部分禁用用户交互

Disable user interaction in some part of screen

我通过容器视图创建侧边菜单,当用户点击栏按钮(菜单按钮)时,我只是更改约束并显示或隐藏侧边菜单。但是当侧面菜单打开时,用户可以使用所有屏幕中的元素。当侧面菜单打开或隐藏时,如何禁用或仅启用部分屏幕?

假设您的侧边菜单的视图层次结构是这样设置的:

View #1
 |_ title label
 |_ button
 |_ button

您现在可以将它嵌入到另一个视图中,这将是不可见的:

View #0
 |_ View #1
     |_ title label
     |_ button
     |_ button

...其中视图 #1 将是您的常规侧边菜单视图,例如覆盖屏幕宽度的 70%。
现在,将视图 #0 的背景颜色设置为 .clear.
此外,更改约束逻辑以将侧边菜单移动到屏幕边缘。

这将为您提供一个覆盖全屏的侧边菜单,禁用其外部的点击,看起来它只覆盖部分屏幕。


加分:

添加 UITapGestureRecognizer 以查看 #0。触发后,您可以关闭侧边菜单。