SwiftUI 覆盖阻止列表滚动事件

2024-04-08

我想在 SwiftUI 中的列表顶部放置一个半透明图像叠加层。 我试过这样的代码:

struct ContentView: View {
    var body: some View {
        List {
            Text("first")
            Text("second")
            Text("third")
        }
        .overlay(
            Image(systemName: "hifispeaker")
                .resizable()
                .frame(width: 200, height: 200)
                .opacity(0.15)
        )
    }
}

它看起来符合预期,但如果您将手指放在图像边界内,则列表的滚动不起作用(如果您尝试滚动到图像之外,则效果很好)

我尝试添加.allowsHitTesting(false)就在不透明度之后,但它不会改变任何东西。

Using ZStack代替overlay也没有帮助。我发现的唯一解决方法是使用ZStack,将图像放在列表后面并使列表半透明,但这不是我正在寻找的解决方案(它会稍微改变列表的颜色并导致一些动画问题)。

有办法让它发挥作用吗?就像让图像将事件传递到后台列表之类的。


这看起来绝对像是一个 SwiftUI 错误。我遇到了同样的问题并找到了解决方法。

struct ContentView: View {
    var body: some View {
        List {
            Text("first")
            Text("second")
            Text("third")
        }
        .overlay(
            ScrollView {
                Image(systemName: "hifispeaker")
                    .resizable()
                    .frame(width: 200, height: 200)
                    .opacity(0.15)
            }
            .frame(width: 200, height: 200)
            .disabled(true)
        )
    }
}

通过将覆盖层嵌入到 ScrollView 中.disabled(true)修改器,手势正确传递到列表并且滚动不会被阻止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI 覆盖阻止列表滚动事件 的相关文章

随机推荐

  • JPA - COUNT 的最大值或从 SELECT 中选择

    我为 MySQL 编写了以下查询 SELECT subquery t1 column1 subquery t2 id MAX subquery val FROM SELECT t1 column1 as t1 column1 t1 id t
  • 如何在 C# 中使用循环迭代所有 ComboBoxes 控件?

    我在 C 的 winform 上有一些组合框 例如 10 名为 comboBox1 coboBox2 和comboBoxN 我如何在 for 循环中访问所有这些内容 如下所示 for int i 0 i lt 10 i comboBox i
  • 根据值列表重复每个元素

    是否有一个Python内置函数可以根据另一个列表中的相应值重复列表中的每个元素 例如A在列表中x由于值的原因 位置 0 重复了 2 次2位于列表中的位置 0y gt gt gt x A B C gt gt gt y 2 1 3 gt gt
  • 具有不等式条件的合并连接算法

    我读到 Oracle 支持带有不等式连接谓词的合并连接 是否有在线参考用于实现此类连接的算法 如果有人知道该怎么做 你能回答吗 This http docs oracle com cd E16655 01 server 121 e15858
  • 编写和完善 CSV 解析器

    作为最近项目的一部分 我必须从 CSV 文件中读取和写入 然后将其放入 C 中的网格视图中 最后决定使用现成的解析器来为我完成这项工作 因为我喜欢做这类事情 所以我想知道如何自己写 到目前为止 我所能做的就是 Read the header
  • 如何检测属于 gsm/3g-modem 的 tty 是数据端口还是控制端口?

    我目前正在为 Linux 路由器编写一个小工具 当我将适当的调制解调器插入其 USB 端口时 该工具会建立 wwan gsm 3g 连接 当设备插入时 会注册多个 tty 我当前维护一个制造商和设备的列表 以及它们注册的 tty 中的哪个是
  • WinForms 中如何处理不可见控件的绘制?

    我正在尝试覆盖OnPaintwindows窗体中的事件 NET 紧凑框架 到目前为止 我已经能够使用渐变 圆角矩形等来绘制控件 而这通常是常规控件无法实现的 但是 当我想让控件不可见时 我遇到了问题 现在 我所做的就是重新绘制除那些不可见控
  • 为什么在签出 git 远程分支窗口时出现“无法创建目录”?

    我在 Windows 10 64 位上使用 git 版本 2 10 2 windows 1 在 MACOS 上 我们将两个分支合并到一个现有分支中 合并后分支包含一个folder with a 末尾有空白 Jadise 我根据 Bitbuc
  • Memcache密钥生成策略

    给定函数f1它接收 n 个字符串参数 就运行时性能而言 什么被认为更好 memcache 的随机密钥生成策略 我们的 Memcache 客户端对其获取的密钥进行内部 md5sum 哈希处理 public class MemcacheClie
  • “EXC_BAD_ACCESS:无法恢复先前选择的帧”错误,数组大小?

    我有一个算法来创建埃拉托斯特尼筛并从中提取素数 它允许您输入筛子的最大值 算法会为您提供低于该值的素数并将它们存储在 c 样式数组中 问题 值高达 500 000 时一切正常 但是当我在运行时输入一个大值时 它会在 xcode 中给出以下错
  • Java中如何获取变量名? [复制]

    这个问题在这里已经有答案了 可能的重复 Java反射 如何获取变量的名称 https stackoverflow com questions 744226 java reflection how to get the name of a v
  • 设计模式作为(缺失的)语言功能

    有时人们将设计模式称为缺少的编程语言功能 为了避免关于什么是设计模式的争论 假设我们只考虑原始的 GoF 模式 例如 单例模式在 Scala 中消失了 Scala 使用关键字支持单例对象object 关于这方面的资源很少 特别是设计模式是否
  • 如何使用maven shade插件向jar添加资源

    我的项目结构在 src main 文件夹内有 resources 文件夹 resources 文件夹包含文件server properties 我的pom如下
  • JavaFX 的奇怪 Gluon 项目结构 - Android 移植

    用于将 JavaFX 移植到 Android 的 Gluon 插件 在 Netbeans 8 0 2 中 的 gradle 构建创建了以下目录结构 源码包 Java Android Java 包 桌面 Java 包 iOS Java 包 每
  • 使用 JOLT 转换具有嵌套数组对象的对象数组

    我想将以下输入 JSON 转换为输出 JSON 格式 输入 JSON orderNumber 201904 000000001 items itemPrice 40000 itemQuantity 11 item external id I
  • Oracle 是否有官方文档说我们不应该在新项目中使用 java.util.Date

    我正在公司用 Java 8 编写新项目 我建议使用 Java 8 日期时间 API 但我的一位同事说新的日期时间 API 运行缓慢 这是真的吗 另外我想从 Oracle 获得一些官方文档 其中会提到你不应该使用java util Date在
  • 如何使用 Wt 启动并运行 Restful API

    我有一个基于网络上的教程运行的 Wt 应用程序 我想知道是否有一种优雅的方式使用 Wt 添加一些 Restful API 功能 我有一些可以从当前应用程序公开的资源 但我不想实施任何补丁 如果有人知道如何做到这一点 或者甚至建议一些可以使开
  • PHP:is_file() 和 file_exists() 对同一文件返回不同的结果

    我遇到 file exists 返回 false 而 is file 返回 true 的问题 echo getmygid gid n 501 echo getmyuid uid n 501 echo posix getgid pgid n
  • MySQL 从 3 个表中提取数据 - 连接和最大值

    我有三个 mysql 表 我想从中提取一些信息 这些表是 视频 表示带有分数的视频 标签 包含全局标签列表 VideoTags 在视频和标签之间创建关联 我想要做的是找到每个标签得分最高的视频 有很多具有相同标签的视频 但我的结果集将包含
  • SwiftUI 覆盖阻止列表滚动事件

    我想在 SwiftUI 中的列表顶部放置一个半透明图像叠加层 我试过这样的代码 struct ContentView View var body some View List Text first Text second Text thir