如何在 SwiftUI 中以编程方式单击按钮
How to click a button programmatically in SwiftUI
在使用情节提要时,我们可以使用
以编程方式单击按钮或字段
@IBOutlet weak var negativeButton: UIButton!
negativeButton.sendActions(for: .touchUpInside)
如何使用 SwiftUI 重新创建相同的内容?
在 SwiftUI 中做同样的事情是不可能的,SwiftUI 甚至不知道 Button 的存在“作为对象!但是作为 Render 和它的职责存在”,使用 Button 的原因是它在 SwiftUI 中的功能,这意味着启动 Action 或 ()-> Void,所以你不需要也你不能编程点击按钮,因为你可以随时随地运行它的动作。
例如: 您可以 运行 actionOfButton()
从您想要的地方以编程方式点击按钮,它的工作原理是一样的。如果你的 Button 根据每次点击改变它的外观,你应该在 actionOfButton()
中发生,所以话虽如此,你可以同时进行操作和渲染,这就是以编程方式点击 Button 的总结在 SwiftUI 中。
import SwiftUI
struct ContentView: View {
var body: some View {
Button("tap") {
actionOfButton()
}
}
func actionOfButton() {
print("Hello, world!")
}
}
可能的解决方案是在您的结构视图中声明您的操作变量,并且您可以在需要时手动调用按钮操作。
这是演示。
struct ContentViewButtonAction: View {
var buttonAction: ()->Void {
{
print("Button tapped!!")
}
}
var body: some View {
Button(action: buttonAction, label: {
Text("Tap Button")
})
Button(action: {
print("Second button tapped")
buttonAction()
}, label: {
Text("Tap Button to execute first button action")
})
}
}
您不能像对待 UIKit 按钮那样对待 SwiftUI 按钮。因为在 SwiftUI 视图中(按钮)没有像您在故事板中那样的 object/outlet,所以它没有那样的功能。
相反,您可以创建函数并使用该函数来触发按钮操作,并且您可以从任何需要的地方调用该函数。
请参考下面的例子更清楚的理解。
struct ContentView: View {
var body: some View {
Button(action: {
buttonAction()
}, label: {
Text("Tap Here")
})
}
func buttonAction(){
//do write here your button action logic
print("button tapped")
}
}
在使用情节提要时,我们可以使用
以编程方式单击按钮或字段@IBOutlet weak var negativeButton: UIButton!
negativeButton.sendActions(for: .touchUpInside)
如何使用 SwiftUI 重新创建相同的内容?
在 SwiftUI 中做同样的事情是不可能的,SwiftUI 甚至不知道 Button 的存在“作为对象!但是作为 Render 和它的职责存在”,使用 Button 的原因是它在 SwiftUI 中的功能,这意味着启动 Action 或 ()-> Void,所以你不需要也你不能编程点击按钮,因为你可以随时随地运行它的动作。
例如: 您可以 运行 actionOfButton()
从您想要的地方以编程方式点击按钮,它的工作原理是一样的。如果你的 Button 根据每次点击改变它的外观,你应该在 actionOfButton()
中发生,所以话虽如此,你可以同时进行操作和渲染,这就是以编程方式点击 Button 的总结在 SwiftUI 中。
import SwiftUI
struct ContentView: View {
var body: some View {
Button("tap") {
actionOfButton()
}
}
func actionOfButton() {
print("Hello, world!")
}
}
可能的解决方案是在您的结构视图中声明您的操作变量,并且您可以在需要时手动调用按钮操作。
这是演示。
struct ContentViewButtonAction: View {
var buttonAction: ()->Void {
{
print("Button tapped!!")
}
}
var body: some View {
Button(action: buttonAction, label: {
Text("Tap Button")
})
Button(action: {
print("Second button tapped")
buttonAction()
}, label: {
Text("Tap Button to execute first button action")
})
}
}
您不能像对待 UIKit 按钮那样对待 SwiftUI 按钮。因为在 SwiftUI 视图中(按钮)没有像您在故事板中那样的 object/outlet,所以它没有那样的功能。
相反,您可以创建函数并使用该函数来触发按钮操作,并且您可以从任何需要的地方调用该函数。
请参考下面的例子更清楚的理解。
struct ContentView: View {
var body: some View {
Button(action: {
buttonAction()
}, label: {
Text("Tap Here")
})
}
func buttonAction(){
//do write here your button action logic
print("button tapped")
}
}