swift - 在屏幕的某些部分禁用用户交互
问题描述
我通过容器视图创建侧边菜单,当用户点击栏按钮(菜单按钮)时,我只是更改约束并显示或隐藏侧边菜单。但是当侧边菜单打开时,用户可以在所有屏幕中使用元素。当侧边菜单打开或隐藏时,如何仅禁用或启用部分屏幕?
解决方案
假设您的侧边菜单的视图层次结构是这样设置的:
View #1
|_ title label
|_ button
|_ button
您现在可以将它嵌入到另一个视图中,这将是不可见的:
View #0
|_ View #1
|_ title label
|_ button
|_ button
...其中视图 #1 将是您的常规侧边菜单视图,例如覆盖屏幕宽度的 70%。
现在,将视图#0 的背景颜色设置为.clear
.
此外,更改约束逻辑以将侧边菜单移动到屏幕边缘。
这将为您提供一个覆盖全屏的侧面菜单,禁用其外部的点击,并且看起来它只覆盖屏幕的一部分。
额外学分:
添加一个UITapGestureRecognizer
以查看#0。触发后,您可以关闭侧面菜单。
推荐阅读
- javascript - 在 JavaScript 中计算画布数组中位数的有效方法
- node.js - 使用 node.js 将图像上传到 s3
- azure - Microsoft-Graph - 作为 Azure AD 管理员,您如何为其他用户获取有效的 access_token
- swift - 如何检查用户的电子邮件是否经过验证?
- xml - xQuery FLWOR 我将如何计算出现的单词的频率
- java - 在以下任何来源中都找不到插件 [id: 'org.springframework.boot', version: '2.4.0']
- sql - Postgres比较来自json和表的字符串
- linux - bin:不能 mkdir:权限被拒绝或平台特定的结构二进制文件无法在 Hyperledger Fabric 中下载
- php - 访问包含的 php 文件中的私有函数
- javascript - ReactQueryCacheProvider 与 ReactQueryConfigProvider