我在项目中使用xCode 9
,Swift 4
和“ Eureka表单库”。
情况:
我有一个带有列表和按钮的表格。
我需要解决以下2
问题:
我的code
:
import UIKit
import Eureka
class myPage: FormViewController {
override func viewDidLoad() {
super.viewDidLoad()
createForm()
}
func createForm(){
form
+++ Section("Sample list ")
form +++ SelectableSection<ListCheckRow<String>>("Continents", selectionType: .singleSelection(enableDeselection: false))
let continents = ["Africa", "Antarctica", "Asia", "Australia", "Europe", "North America", "South America"]
for element in continents {
form.last! <<< ListCheckRow<String>(element){ listRow in
listRow.title = element
listRow.selectableValue = element
listRow.value = nil
}
}
form.last! <<< ButtonRow("Button1") {row in
row.title = "Get List Value"
row.onCellSelection{[unowned self] ButtonCellOf, row in
print ("Selected List Value = ????????")
}
}
}
谢谢。
答案 0 :(得分:1)
用于打印所有表单值:
print(form.values())
这将打印由行values
键入的所有格式tag
的字典。
在这种情况下,它的打印如下(选择Australia
)
[“亚洲”:无, “非洲”:无, “南极洲”:无, “澳大利亚”:可选( “澳大利亚”),“欧洲”:无, “南美”:无, “ Button1”:无, “北美”:无]
尤里卡(Eureka)的SelectableSection
也有selectedRow()
(用于多选selectedRows()
)方法。
因此,您可以获取如下所示的选定值:
首先只需将标签添加到SelectableSection
中即可。
form +++ SelectableSection<ListCheckRow<String>>("Continents", selectionType: .singleSelection(enableDeselection: false)) { section in
section.tag = "SelectableSection"
}
现在选择按钮
form <<< ButtonRow("Button1") { row in
.. // button setup
}.onCellSelection { [unowned self] (cell, row) in
if let section = self.form.section(by: "SelectableSection") as?
SelectableSection<ListCheckRow<String>> {
print(section.selectedRow()?.value ?? "Nothing is selected")
}
}
现在用于默认值选择:
let defaultContinent = "Antarctica"
现在在Button的onCellSelection
中:
}.onCellSelection { [unowned self] (cell, row) in
.. // printing the selected row as above
if let row = self.form.row(by: defaultContinent) as? ListCheckRow<String> {
row.selectableValue = defaultContinent
row.didSelect()
}
}