单击按钮后立即执行 SwiftUI 按钮操作,而不是单击释放时

2024-01-13

我想在 SwiftUI Button 中单击/点击按钮后立即调用该操作。我怎样才能实现这个?


这是一种可能的方法 - 使用自定义ButtonStyle注入自定义触地动作

使用 Xcode 12 / iOS 14 进行测试

struct PressedButtonStyle: ButtonStyle {
    let touchDown: () -> ()
    func makeBody(configuration: Self.Configuration) -> some View {
        configuration.label
            .foregroundColor(configuration.isPressed ? Color.gray : Color.blue)
            .background(configuration.isPressed ? self.handlePressed() : Color.clear)
    }

    private func handlePressed() -> Color {
        touchDown()           // << here !!
        return Color.clear
    }
}

struct DemoPressedButton: View {
    var body: some View {
        Button("Demo") {
            print(">> tap up")    // << can be empty if nothing needed
        }
        .buttonStyle(PressedButtonStyle {
            print(">> tap down")
        })
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击按钮后立即执行 SwiftUI 按钮操作,而不是单击释放时 的相关文章

  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • 如何更改 div 悬停时的跨度颜色

    我正在尝试更改 div 悬停时跨度的颜色 如何使红色汉堡按钮 即跨度 在 div 悬停时将颜色更改为黑色 PS 现在它在跨度的悬停上执行此操作 JSFiddle https jsfiddle net bjjbqct8 https jsfid
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • iOS 发送 iMessage 尽可能简单

    我希望能够以编程方式发送 iMessage 除了调用一个将文本发送到带有消息的号码的函数之外 无需执行任何其他操作 这两个消息都是文本框 我真的很感激一些示例代码 因为我在网上搜索过 但我发现没有任何帮助 这不适用于商业应用程序 仅适用于我
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c
  • 通用类不会将委托调用转发给具体子类

    鉴于以下情况 protocol EntityType var displayString String get extension String EntityType var displayString String return self
  • 具有非零“内容”的 QTMovieLayer 的 iOS 替代品?

    背景 QTKit QuickTime Kit 是一个来自 10 3 天的 Mac 框架 在 10 5 中添加了一些层 例如QTMovieLayer QTMovieLayer 的好处之一是您可以使用常规访问电影内容content图层上的属性并
  • 错误 ITMS-9000 iTunes Connect

    我正在尝试上传一个phonegap build iOS应用程序到应用程序商店 我不断收到此错误 ERROR ITMS 9000 Missing Code Signing Entitlements No entitlements found
  • 在 viewWillAppear( ) 中获取空值,但在 viewDidLoad( ) 中获取有效值

    When print mess 被称为来自viewDidLoad函数 它打印预期的内容 但是当从viewWillAppear函数 它给出空输出 完成分配后标签也没有更新viewDidLoad 为什么是这样 主视图控制器 if segue i
  • 是否可以使用 iOS SDK 更改 Amazon Cognito 中的用户名?

    正如标题中所写 是否可以更改 Amazon Cognito 用户的用户名 我在文档中找不到任何内容 可以更新preferred username使用 iOS SDK 的 Cognito 用户 使用updateAttributesAPI 调用
  • UIWebView 未正确加载 JavaScript - 嵌入式 Facebook 帖子

    Facebook 有一项新功能 允许用户将公共帖子嵌入网页中 我想尝试在 UIWebView 内的 iPhone 应用程序中使用它 转义必要的代码非常简单 但即使我手动转义代码 Web 视图也不会正确加载帖子 JavaScript 根本不起
  • UIWebView 如何检测 被点击

    我知道下面的方法可以检测链接元素点击 但我想知道是否UIView可以检测是否img元素被点击 BOOL webView UIWebView webView shouldStartLoadWithRequest NSURLRequest re
  • 在 swift 中设置状态栏的自定义颜色?

    在视图控制器上 我想将状态栏的颜色设置为黑色 但我无法更改它 我为此目的使用下面的代码 func setUpUI self navigationController setNavigationBarHidden true animated
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • 如何相对于包含视图大小定位子视图?

    我希望能够将我的子视图从顶部定位到超级视图大小的 25 NSLayoutConstraint topPositionConstraint NSLayoutConstraint constraintWithItem containerView
  • Flutter - 删除 ListView 中项目之间的空间

    我正在使用 ListView builder 函数来创建项目列表 然而 iOS 中每个项目之间的空间很大 截图 你知道如何删除项目吗 看来是默认的 因为我没有添加它 code 列表显示 return Scaffold body ListVi
  • 如何确定 UINavigationController 中工具栏的高度?

    我有一个带有由 UINavigationController 呈现的工具栏的视图 当我处理 UIKeyboardWillShowNotification 时 我将整个屏幕向上滚动键盘的高度 问题是当显示键盘时 底部工具栏不显示 所以我只需将
  • swift 3.0 中的 Sha 256 加密语法错误

    func SHA256 gt String let data self data using String Encoding utf8 let res NSMutableData length Int CC SHA256 DIGEST LE
  • iOS SDK:MapKit MKPolyLine 未显示

    我试图在地图上显示多段线 但该线没有显示 我尝试了很多事情 但注意到似乎有用 我检查了核心数据函数 它正在返回数据 所以这不是问题 它必须是我在地图点创建或地图上绘制的某个地方 我猜 我确信一定是某个地方出了点小错误 但我找不到它 My c
  • iOS SWIFT - WebRTC 从前置摄像头更改为后置摄像头

    WebRTC 视频默认使用前置摄像头 效果很好 但是 我需要将其切换到后置摄像头 但我无法找到任何代码来执行此操作 我需要编辑哪一部分 是 localView 或 localVideoTrack 还是捕获器 斯威夫特3 0 对等连接只能有一

随机推荐

  • ADO.Net 最佳实践 - 进行异步数据库调用时的单个连接与多个连接

    我正在使用 ADO Net 连接到一些 Sql Server 和 Oracle 数据库 并且我想同时运行一些查询 我对 Sql Server 使用 SqlClient 命名空间中的类 对 Oracle 使用 ODP Net 中的类 对于 S
  • watchkit 扩展未启动

    我无法在模拟器上启动 iOS Watch 应用程序 在 Yosemite 上安装了最新的 Beta 6 2 1 我创建一个基于单一视图的应用程序 2 添加App Watch目标 3 自动创建分机和Watch App 4 运行App并启动模拟
  • 如何使图像标题宽度与图像宽度匹配?

    我正在尝试设计这个样式 div class figure img src some image jpg p class caption span class caption text Some caption of any length s
  • C# 获取%AppData%的路径

    C 2008 SP1 我正在使用下面的代码 dt ReadXml AppData DateLinks xml 但是 我收到一个异常 该异常指向我的应用程序运行的位置 找不到路径的一部分 D Projects SubVersionProjec
  • 打字稿导入类

    我已经尝试让这个东西工作很长一段时间了 到目前为止 我找到的解决方案还没有对我有用 这就是我所拥有的 Test ts module t export class Test constructor alert test Main ts
  • 在 JSF 中动态创建响应

    我想在我的 JSF 页面上有一个链接 单击此链接时 Java Web Start 应用程序将启动 该应用程序根本不影响当前页面 该应用程序会自行启动 问题是 我需要动态生成启动 Java Web Start 应用程序的 JNLP 文件 基本
  • 如何在 Pandas 数据框中堆叠行以获得一个“长行”?

    假设我有一个 4 行 3 列的数据框 我想水平堆叠行 这样我就得到一行 12 列 如何操作以及如何处理冲突的列名称 您可以通过以下方式实现这一目标stack计算框架以产生一系列所有值 然后我们希望使用以下方法将其转换回 dfto frame
  • 将二进制浮点“1101.11”转换为十进制(13.75)的正确算法?

    我用C编写了一个程序来转换浮点数以二进制表示 http kipirvine com asm workbook floating tut htm 1101 11 化为小数 13 75 但是 我似乎无法从算法中获得正确的值 将二进制浮点数转换为
  • JavaScript 中的“闭包”到底指的是什么?

    我理解闭包是什么 但我在理解这个术语到底是什么时遇到了一些困难closure指 我在许多网站上看到过这个术语 但很少有人就其实际定义达成一致 是保存在栈帧上的变量吗 是返回的函数吗 它是外部函数的范围吗 它是内部 返回 函数的范围吗 是不是
  • 如何在 Swift 3 中测试 URL 并获取状态代码?

    我正在使用最新版本的 Xcode 撰写本文时为 8 1 它使用 Swift 3 0 我想做的就是获取一个字符串 将其转换为 URL 并测试该 URL 看看它是否会给出 404 错误 我已经能够使用以下方法创建 URL 和 URLReques
  • Node.JS 内核模式线程

    我试图弄清楚 Node JS 其 Windows 版本 是如何在幕后工作的 我知道有用户模式和内核模式线程 并且我知道处理模型如下所示 我还知道从内核模式线程移动到用户模式线程被认为是上下文切换 Node JS C 非阻塞工作线程是内核模式
  • Angular2 在模板和变更检测中的功能

    我试图在服务中构建一种方法 检查是否应根据当前用户的权限向当前用户显示导航按钮 我知道这只是装饰性的 安全性 因此这是放置在模板内的按钮
  • 尾随返回类型中的占位符是否会覆盖初始占位符?

    g 似乎接受任意组合auto and decltype auto 作为初始和尾随返回类型 int a auto f return a int auto g gt auto return a int auto h gt decltype au
  • 关于 DSO 引用隐藏符号的警告究竟意味着什么?

    我在将某些共享库与 g 链接时遇到问题 它给了我这样的警告 hidden symbol XXX in YYY is referenced by DSO usr lib 我已经阅读了一些有关特定问题的相关问题 但我想从整体上理解它 这个警告是
  • 如何授予jnlp文件中依赖lib的所有权限?

    我在使用 Java Web Start 时遇到了一个严重的问题 我无法理解 情况如下 我有一个 JavaFX 应用程序 编写为 Java8 我想使用 Java WebStart 进行部署 直到最近 我还使用 HTTP 与服务器进行通信 一切
  • 仅在 Spring Data Rest 中为子资源级别启用存储库?

    我有 2 个 jpa 实体 Document 和 DispatchDetail 它们具有一对多关系 即一个文档可以有一个dispatchDetails 列表 我为每个实体创建了 2 个存储库 现在我要尝试文档 GET http localh
  • Django MakeMessages 在 Windows 中缺少 xgettext

    在 Windows 7 上运行 Django 我目前正在尝试使用 django 书籍第 19 章中的说明翻译几个 Django 模板 我已向模板添加了翻译标签 加载了 I18N 并修改了 django 设置 然后我运行 django adm
  • 快速地,为什么当协议有初始化器时我不能实例化它?

    据我所知 通常我无法实例化协议 但是 如果我在协议中包含一个初始化程序 那么编译器肯定知道当结构或类稍后使用该协议时 它将有一个可以使用的 init 吗 我的代码如下所示 protocol Solution var answer Strin
  • 无法连接到服务器:net/http:TLS 握手超时

    在 minikube for windows 上 我在 kubernetes 集群上创建了一个部署 然后尝试通过将副本从 1 更改为 2 来扩展它 之后 kubectl 挂起 我的磁盘使用率为 100 我的部署中只有一个容器 apiVers
  • 单击按钮后立即执行 SwiftUI 按钮操作,而不是单击释放时

    我想在 SwiftUI Button 中单击 点击按钮后立即调用该操作 我怎样才能实现这个 这是一种可能的方法 使用自定义ButtonStyle注入自定义触地动作 使用 Xcode 12 iOS 14 进行测试 struct Pressed