使用 UITableViewCell 中的 UIStepper 增加标签值 [英] Increment Label Value with UIStepper in UITableViewCell

查看:20
本文介绍了使用 UITableViewCell 中的 UIStepper 增加标签值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够使用位于每个 tableview 行中的 UIStepper.我希望每个 UIStepper 更新 UIStepper 所在的同一个 tableview 行中的标签.

I want to be able to use a UIStepper that is located in each tableview row. I would like each UIStepper to update a label in the same tableview row that the UIStepper is in.

我正在尝试的代码如下

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cartListCell = tableView.dequeueReusableCell(withIdentifier: reuseCartListingCellIdentifier, for: indexPath) as? CartListingItemTableViewCell

        cartListCell?.UI_STEPPER_NAME.value = VALUE_FROM_ARRAY

        return cartListCell!

}


@IBAction func CartStoreQtyStepperAction(_ sender: UIStepper) {


        // I need to update the value of a label in the tableview cell that tapped

    }

更新实施

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        cartListCell?.CartListingProductQtyStepperOutlet.tag = indexPath.row
     cartListCell?.CartListingProductQtyStepperOutlet.addTarget(self, action: #selector(self.CartStoreQtyStepperAction(_:)), for: UIControlEvents.valueChanged)
        cartListCell?.tag         =   Int(CartStoreItemIdArray [indexPath.row])!
        return cartListCell!
}


@IBAction func CartStoreQtyStepperAction(_ sender: UIStepper) 
{

            let stepperValue = Int(sender.value)
            let indexPath = IndexPath(row: stepperValue, section: 0)
            print(stepperValue)

           if let cell = yourTableView.cellForRow(at: indexPath) as? CartListingItemTableViewCell 
    {
        print(cell?.tag)
    }

}

当我这样做时,我无法访问 tableview 单元格和其中的标签.有人可以指导我如何做到这一点吗?

I am not able to access the tableview cell and the label in that when I am doing it like this. Can someone guide me how to do this?

推荐答案

// Custom tableview cell code
class CartListingItemTableViewCell: UITableViewCell {

    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var stepper: UIStepper!

}

//你的视图控制器代码(tableview 数据源)

// your view controller code (tableview data source)

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cartListCell = tableView.dequeueReusableCell(withIdentifier: reuseCartListingCellIdentifier, for: indexPath) as? CartListingItemTableViewCell

    let stepperValue = yourArray[indexPath.row]
    cartListCell?.label.text = String(stepperValue) ?? "0"
    cartListCell?.stepper.value = Int(stepperValue) ?? 0
    cartListCell?.stepper.tag = indexPath.row
    cartListCell?.stepper.addTarget(self, action: #selector(self.stepperValueChanged(_:)), for: UIControlEvents.valueChanged)

    return cartListCell!

}


// handle stepper value change action
@IBAction func stepperValueChanged(_ stepper: UIStepper) {

    let stepperValue = Int(stepper.value)
    print(stepperValue) // prints value

    let indexPath = IndexPath(row: stepperValue, section: 0)
    if let cell = yourTableView.cellForRow(at: indexPath) as? CartListingItemTableViewCell {
        cell.label.text = String(stepperValue)
        yourValueArray[index] = stepperValue

    }
}

这篇关于使用 UITableViewCell 中的 UIStepper 增加标签值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆