单击按钮后立即执行 SwiftUI 按钮操作,而不是单击释放
Posted
技术标签:
【中文标题】单击按钮后立即执行 SwiftUI 按钮操作,而不是单击释放【英文标题】:SwiftUI button action as soon as button is clicked not on click release 【发布时间】:2020-08-08 14:52:49 【问题描述】:我想在 SwiftUI 按钮中单击/点击按钮后立即调用该操作。我该如何实现?
【问题讨论】:
【参考方案1】:这是一种可能的方法 - 使用自定义 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")
)
【讨论】:
以上是关于单击按钮后立即执行 SwiftUI 按钮操作,而不是单击释放的主要内容,如果未能解决你的问题,请参考以下文章
在单击保存或检索时,我需要帮助在一个表单中创建多个按钮而不执行表单操作