SwiftUI:按下按钮时的操作

2023-12-10

我正在尝试实现一个长按按钮,仅当我按下按钮时才会更改我使用的 SF 符号。我不太确定应该在哪里使用这些图像。问题是,当我停止按下时,按钮就会被触发。有没有办法不激活它(按下时除外)?

我正在寻找的是一个按钮:

When pressed持续 2 秒,符号changes,在那 2 秒之后,当released,符号返回到初始状态.

struct heartButton: View {

@State private var isDetectingPress = false

var body: some View {
    VStack {
        Image(systemName: isDetectingPress ? "heart.fill" : "heart").font(.system(size: 16, weight: .regular))
        Button(action: {
            self.isDetectingPress.toggle()
        }) {
            Text("Button")
        }
    }
}

这是一个解决方案。使用 Xcode 11.5b 进行测试。

demo

struct heartButton: View {

    @GestureState private var isDetectingPress = false

    var body: some View {
        VStack {
            Image(systemName: isDetectingPress ? "heart.fill" : "heart").font(.system(size: 16, weight: .regular))
            Text("Press")
            .gesture(LongPressGesture(minimumDuration: 2).sequenced(before: DragGesture(minimumDistance: 0, coordinateSpace: .local)).updating($isDetectingPress) { value, state, _ in
                    switch value {
                        case .second(true, nil):
                            state = true
                        default:
                            break
                    }
            })
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI:按下按钮时的操作 的相关文章

随机推荐

  • read.csv 似乎没有检测到 R 4.0.0 中的因素

    我最近从 R 3 5 1 更新到 R 4 0 0 的行为read csv似乎已经改变 当我在 R 4 0 0 中加载 csv 文件时 不会自动检测因素 而是被识别为字符 我还在我的机器上运行 3 5 1 当使用相同的代码加载 3 5 1 中
  • 为什么在 Dataflow beta 中 #sideInput() 方法从 Context 移至 ProcessContext

    我想知道为什么有 sideInput 方法移至ProcessContext班级 以前我可以在 startBundle 方法并缓存结果 这样做在 processElement 听起来效率较低 当然 我可以在将数据传递到视图之前进行预处理 但是
  • shell:通配符能保证字母顺序吗?

    当我有文件时a txt b txt and c txt is it 保证 that cat txt gt all files txt or cat txt gt all files txt 会按字母顺序合并文件吗 在我所有的测试中 字母顺序
  • perf中的时间戳是什么意思?

    我想使用 perf 来测量函数的实际执行时间 perf script 命令给出调用函数时的时间戳 Xorg 1523 001 25712 423702 probe sock write iter ffffffff95cd8b80 时间戳字段
  • 我在阅读文档上构建项目时遇到问题

    使用 sphinx quickstart 创建了 sphinx 项目 运行 make html 并且没有产生错误 将所有代码推送到 GitHub 我尝试在阅读文档上导入和构建项目 但出现以下错误 我在使用 Mac 时没有遇到任何问题 它在阅
  • Android MapView - 自定义缩放按钮

    你知道 是否有办法在 Android 地图视图中制作自定义缩放按钮 或者只有准备好的缩放控件 Thanks Hmyzak 您可以将默认缩放控件设置为 false mapView setBuiltInZoomControls false 添加
  • 从固定的快捷方式 android 中删除应用程序图标

    android 8之后 我的应用程序图标出现在快捷方式上 我知道这是专门添加的 目的是通知用户哪个应用程序创建了快捷方式 这是当前用于创建图标的代码 ShortcutManager shortcutManager ShortcutManag
  • R - 将向量中的每个元素与其他向量中的每个元素求和

    我有两个向量 我想要一个新向量 其元素是向量 1 的元素与向量 2 的元素之和 v1 lt c 1 2 3 4 5 6 v2 lt c 0 1 1 2 2 1 for i in 1 length v1 for j in 1 length v
  • 使用反射获取方法的调用层次结构

    我使用 java 反射从类中获取方法 加载这些类 现在我想获取这些方法的调用层次结构 我如何在 Eclipse IDE 中使用调用层次结构选项 有任何示例或链接吗 提出的解决方案是使用Thread currentThread getStac
  • Scala 构造函数重载?

    如何在 Scala 中提供重载构造函数 值得明确提及的是 Scala 中的辅助构造函数必须调用主构造函数 如 landon9720 中的 答案 或者调用同一类中的另一个辅助构造函数 作为其第一个操作 它们不能像在 Java 中那样简单地显式
  • 如何为通用Windows平台(UWP)应用程序创建.appx包?

    我已经为我的通用 Windows 平台应用程序创建了包 但是我无法找到为我的包生成 appx 文件的位置 它已生成 appxbundle 文件和所有其他文件 但未生成 appx 文件 An appx只是一个 zip64 文件 以及 appx
  • 如何使用 preg_match 检查全文

    您好 我对 preg match 函数有疑问 我想根据模式检查整个文本 如果整个文本与模式匹配 则返回 true 如果与模式不匹配或部分匹配 则返回 false 但我无法使用 php preg match 函数执行此操作 例如 我使用下面的
  • 更改

    我刚刚学习 JQUERY 我一直在玩delay 我写了一个小提琴来向你展示 我想做的是当单击按钮时 更改 div 的背景颜色 然后在过一会儿再次切换背景颜色 但是当我尝试时 它只是切换到第二种颜色并跳过第一种颜色 HTML div clas
  • 在列表中找到所有可能的对的最快方法是什么?

    基本上我有球员名单 我想将他们配对 以便每个球员都会与所有人比赛一次 找到这些数据的最快方法是什么 假设球员没有出现在名单中两次 则双倍for循环非常快 for int i 0 i lt playerList Count 2 i for i
  • 需要帮助在 Java 中将数字转换为单词

    我正在开发一个将数字转换为单词的程序 但我在使用 Numbers 类中的 toString 方法时遇到问题 所有的方法都给了我 我可以实现 因此 我无法删除其中任何一个 编号 4564 gt 四千五百六十四 这是代码 数字类 package
  • codeigniter 本地主机电子邮件未发送

    我有一些问题 我不明白 这是我的代码 this gt load gt library email config protocol sendmail config mailpath usr sbin sendmail config chars
  • 我可以在 .gitconfig 中为自己指定多个用户吗?

    In my gitconfig 我在下面列出了我的个人电子邮件地址 user 因为这就是我想用于 Github 存储库的内容 但是 我最近也开始使用 git 来工作 我公司的 git 存储库允许我提交 但是当它发出新变更集的公告时 它说它们
  • 将 MySQL 表 varchar 字段更改为十进制字段

    我有一个 MySQL 表 其中有几列 例如 id text 1 val 1 text 2 text 3 val 2 1 bla 1 23 blub 5 67 12 34 不幸的是所有字段都定义为varchar 现在我尝试更改表以将某些字段设
  • AFnetworking 多部分请求主体为零

    我正在尝试通过 af 2 0 多部分请求将图片上传到服务器 但似乎正文始终为空 这是代码的快照 self POST path parameters params constructingBodyWithBlock id
  • SwiftUI:按下按钮时的操作

    我正在尝试实现一个长按按钮 仅当我按下按钮时才会更改我使用的 SF 符号 我不太确定应该在哪里使用这些图像 问题是 当我停止按下时 按钮就会被触发 有没有办法不激活它 按下时除外 我正在寻找的是一个按钮 When pressed持续 2 秒