0

ここに私の問題の .gif があります: http://g.recordit.co/LnslGAaWwK.gif

最初は、インクリメントまたはデクリメント ボタンを使用して値を増減できます。しかし、テーブルビューを一番下までスクロールしてから、以前に変更したステッパーに戻った後、デクリメントボタンが機能しないようで、カウンターラベルの値は同じままです

しかし、インクリメントボタンをタップすると機能しますが、それでも間違った値を与えると、1から再開し、スクロールする前に値を継続しません。

問題はここにあると思われます (完全なコードは以下にあります):

    override func awakeFromNib() {
        super.awakeFromNib()
        setStepper()
    }

テーブルビューの一番下までスクロールした後、 in が再びトリガーされるようでsetStepper()awakeFromNib()ステッパーからの初期値を意味し(stepper.value = 0)ます , 再びゼロに戻ります.インクリメントボタンを押すと 1 になります.スクロールする前に値を継続しない

これが私のテーブルビューセルのコードです

import UIKit
import KWStepper

protocol CounterDelegate{
    func incrementOrDecrementButtonDidTapped(at selectedIndexPath:IndexPath, counterValue: Int)
}

class CheckOutCell: UITableViewCell {

    var stepper: KWStepper?
    var indexPath: IndexPath?
    var delegate: CounterDelegate?

    @IBOutlet weak var counterLabel: UILabel!
    @IBOutlet weak var decrementButton: UIButton!
    @IBOutlet weak var incrementButton: UIButton!

    var productData : Product? {
        didSet {
            updateUI()
        }
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        setStepper()
    }


    func setStepper() {

        stepper = KWStepper(decrementButton: decrementButton, incrementButton: incrementButton)
        guard let stepper = stepper else {return}

        stepper.autoRepeat = false
        stepper.wraps = false
        stepper.minimumValue = 0
        stepper.value = 0
        stepper.incrementStepValue = 1
        stepper.decrementStepValue = 1

        stepper.valueChangedCallback = { stepper in
            let stepperValue = Int(stepper.value)

            // send data to CheckoutVC
           guard let indexPath = self.indexPath else {return}
           self.delegate?.incrementOrDecrementButtonDidTapped(at: indexPath, counterValue: stepperValue)

            print(stepperValue)

        }
    }



    func updateUI() {

        guard let productData = productData else {return}
        counterLabel.text = "\(productData.quantity)"


    }


}

この問題を解決するにはどうすればよいですか?テーブルビューを一番下までスクロールした後、値を継続させる方法は?

4

1 に答える 1