我和Eureka Forms有这个奇怪的错误。 有3个图像检查行,
1) Speedex
2) Post
3) Pickup
当用户选择其中一个时,表单末尾有一个正在更新的文本。 问题是当用户选择其中一个时,文本显示正确的文本。但是当用户在表单中向上和向下滚动时,此文本为空白。这意味着该表重新加载数据,我失去了用户的选择。
以下代码是我迄今为止所做的。 首先,我们创建ImageCheckRow类。
public final class ImageCheckRow<T: Equatable>: Row<ImageCheckCell<T>>, SelectableRowType, RowType {
public var selectableValue: T?
required public init(tag: String?) {
super.init(tag: tag)
displayValueFor = nil
}
}
public class ImageCheckCell<T: Equatable> : Cell<T>, CellType {
required public init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
lazy public var trueImage: UIImage = {
return UIImage(named: "selected")!
}()
lazy public var falseImage: UIImage = {
return UIImage(named: "unselected")!
}()
public override func update() {
super.update()
accessoryType = .none
imageView?.image = row.value != nil ? trueImage : falseImage
oroi = row.value != nil ? 1 : 0
}
public override func setup() {
super.setup()
textLabel?.numberOfLines = 0
}
public override func didSelect() {
row.reload()
row.select()
row.deselect()
}
}
然后是部分。 var text =&#34;&#34; var discount =&#34;&#34;
+++ SelectableSection<ImageCheckRow<String>>("Delivery Selection", selectionType: .singleSelection(enableDeselection: true)) { section in
section.tag = "deliveryselection"
}
<<< ImageCheckRow<String>("speedex"){
$0.title = dtext
$0.selectableValue = ""
$0.value = nil
}.cellSetup { cell, _ in
cell.trueImage = UIImage(named: "selectedRectangle")!
cell.falseImage = UIImage(named: "unselectedRectangle")!
}.onCellSelection({ (cell, row) in
row.title = "speedex"
row.selectableValue = "selectedspeedex"
}).cellUpdate({ (cell, row) in
self.text = "Speedex:"
if self.sinolo1 < 100.0 {
self.discount = "3.00€"
}else{
self.discount = "--"
}
print("here speedex")
let section: Section? = self.form.sectionBy(tag: "summary")
section?.reload()
})
<<< ImageCheckRow<String>("post"){
$0.title = "Post"
$0.selectableValue = ""
$0.value = nil
}.cellSetup { cell, _ in
cell.trueImage = UIImage(named: "selectedRectangle")!
cell.falseImage = UIImage(named: "unselectedRectangle")!
}.onCellSelection({ (cell, row) in
row.title = "Post"
row.selectableValue = "selectedpost"
}).cellUpdate({ (cell, row) in
print("here paradosi")
self.text = "Post:"
self.discount= "6.00€"
let section: Section? = self.form.sectionBy(tag: "summary")
section?.reload()
})
<<< ImageCheckRow<String>("pickup"){
$0.title = "Pick Up"
$0.selectableValue = ""
$0.value = nil
}.cellSetup { cell, _ in
cell.trueImage = UIImage(named: "selectedRectangle")!
cell.falseImage = UIImage(named: "unselectedRectangle")!
}.onCellSelection({ (cell, row) in
row.title = "pickup"
row.selectableValue = "selectedpickup"
}).cellUpdate({ (cell, row) in
print("here pickup")
self.text = "Pick Up:"
self.discount= "--"
let section: Section? = self.form.sectionBy(tag: "summary")
section?.reload()
})
最后一节显示上面的选定行。
+++ Section("summary")
<<< SummaryPuchaseRow().cellUpdate({ (cell, row) in
cell.merikoSinolo.text = "\(self.realmfunctions.getAmount())€"
cell.onomaEpilogis.text = self.text
print(self.text)
cell.discount.text = self.discount
})
字符串&#34; text&#34;和&#34;折扣&#34;在&#34; viewDidLoad&#34;。
之外启动当我滚动表单时,知道为什么我会丢失选择吗?