Eureka Forms图像检查滚动时的行更新单元格

时间:2017-04-07 17:49:26

标签: ios swift swift3 eureka-forms

我和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;。

之外启动

当我滚动表单时,知道为什么我会丢失选择吗?

0 个答案:

没有答案