我正在尝试制作一些在工作中经常使用的模板页面。我可以在字典中存储功能(按钮动作)吗?
"
ForEach(buttonConfigure, id: .self) { buttonConfigure in
Button(action: {
buttonConfigure["action"]!
}, label: {
HStack {
Spacer()
Text(buttonConfigure["text"]!)
.font(.system(size: 15, weight: .medium))
Spacer()
}
})
.frame(height: FrameSize.btnFullheight, alignment: .center)
.foregroundColor(Color.init(hex: buttonConfigure["foreColor"]!))
.background(Color.init(hex: buttonConfigure["backColor"]!))
.cornerRadius(6)
"
,这是字典。关键字如"text", "foreColor", "backColor"工作好,但我不知道该如何采取行动。关键工作。
"
var buttonConfigureDict = [
["text": "Delete", "foreColor": "#707070", "backColor": "#E6E6E6",
"action": "self.presentationMode.wrappedValue.dismiss()"],
["text": "Clear", "foreColor": "#E6E6E6", "backColor": "#1E2A52",
"action": "self.presentationMode.wrappedValue.dismiss()"]]
"
你可以,但不应该。
创建一个结构体来存储这些数据
struct DataModel {
let title: String
let foreground: Color
let background: Color
let action: () -> Void
}
是的,但是你为什么要这样做呢?更好的方法是将按钮保存在视图中,以便稍后访问该视图。也可以是全局函数或静态函数,以备将来使用。