首页 > 解决方案 > 在屏幕的某些部分禁用用户交互

问题描述

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

标签: swiftuicontainerview

解决方案


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

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

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

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

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

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


额外学分:

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


推荐阅读