首页 > 解决方案 > Swift 是否可以在自定义 tableview 单元格中的 UIstepper 增加或减少时更新 UILabel

问题描述

当步进器更改值时,我正在尝试通过 tableview 之外的 refreshLabel() 更新 UIlabel。已经看到了多个使用事件处理程序的示例,但不知道如何使用它们。(希望最简单的方法,因为我是 swift 新手。)自定义单元代码


    import UIKit

    class cartTVC: UITableViewCell , UICollectionViewDataSource, UICollectionViewDelegate{
        var collectionCell : cartCVC!

        @IBOutlet weak var stepper: UIStepper!
        @IBOutlet weak var lblPrice: UILabel!
        @IBOutlet weak var lblQuantity: UILabel!
        var img : UIImage?
        var name = ""
        var index : Int?
        var quantity : Int?
        override func awakeFromNib() {
            super.awakeFromNib()
            collectionView.delegate = self
            collectionView.dataSource = self
            collectionView.reloadData()
            stepper.wraps = true
            stepper.autorepeat = true
            stepper.maximumValue = 100
        }

        override func setSelected(_ selected: Bool, animated: Bool) {
            super.setSelected(selected, animated: animated)
            layer.borderWidth = 2
            layer.borderColor = UIColor.black.cgColor
                    layer.cornerRadius = 10
            // Configure the view for the selected state
        }

        @IBAction func valueChange(_ sender: UIStepper) {
            var cart:[CartItems]
            if let context = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext{
                let data = try? context.fetch(CartItems.fetchRequest())
                cart = data as! [CartItems]
                cart[index!].quantity = Int16(stepper.value)
                cart[index!].totalPrice = cart[index!].price * Int64(cart[index!].quantity)
                (UIApplication.shared.delegate as? AppDelegate)?.saveContext()
                lblQuantity.text = String(stepper.value).description
                lblPrice.text = "\(cart[index!].totalPrice) CREDITS"

            }
        }
    }

标签: swift

解决方案


推荐阅读