使用Storyboard时,我们可以通过编程的方式来点击按钮或字段,方法如下:
@IBOutlet weak var negativeButton: UIButton!
negativeButton.sendActions(for: .touchUpInside)
我该如何使用SwiftUI重新创建相同的内容?
使用Storyboard时,我们可以通过编程的方式来点击按钮或字段,方法如下:
@IBOutlet weak var negativeButton: UIButton!
negativeButton.sendActions(for: .touchUpInside)
我该如何使用SwiftUI重新创建相同的内容?
在SwiftUI中,无法像在UIKit中一样处理Button。因为在SwiftUI视图(Button)中没有与storyboard中相似的对象/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")
}
}
actionOfButton()
,它将起作用。如果您的按钮根据每次点击而改变外观,则应在actionOfButton()
中进行操作。因此,可以同时具有操作和渲染,这就是在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")
})
}
}