Swift UITableview单元格值未更改

Swift UITableview单元格值未更改,swift,uitableview,Swift,Uitableview,我有一个表视图,其中每个单元格包含两个按钮+和-以及一个标签,当按钮值更改时,该标签会更新值 但当我单击标签集1中的第一行添加按钮时,但当我单击第二行时,请单击添加按钮,然后单击标签值集2而不是1 这是代码 func btnAddAction(sender : UIButton) { let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: sender.tag)) as! Detai

我有一个表视图,其中每个单元格包含两个按钮+和-以及一个标签,当按钮值更改时,该标签会更新值

但当我单击标签集1中的第一行添加按钮时,但当我单击第二行时,请单击添加按钮,然后单击标签值集2而不是1

这是代码

    func btnAddAction(sender : UIButton)
{
    let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: sender.tag)) as! DetailTableViewCell
    k++
    cell.lblCount.text = "\(k)"

    if k * item_priceArr[sender.tag] >= 1000
    {
        lblCartCount.frame = CGRectMake(289, lblCartCount.frame.origin.y, 28, 15);
    }
    else if k * item_priceArr[sender.tag] >= 100 && j != 2
    {
        lblCartCount.frame = CGRectMake(291, lblCartCount.frame.origin.y, 22, 15);
        j = 2
    }
    else if k * item_priceArr[sender.tag] <= 99 && j != 1
    {
        lblCartCount.frame = CGRectMake(293, lblCartCount.frame.origin.y, 15, 15);
        j = 1
    }

    print("\(cou! + (k * item_priceArr[sender.tag]))")
    lblCartCount.text = "\(cou! + (k * item_priceArr[sender.tag]))"
}

func btnMinusAction(sender : UIButton)
{
    let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: sender.tag)) as! DetailTableViewCell
    k--
    if k * item_priceArr[sender.tag] >= 1000
    {
        lblCartCount.frame = CGRectMake(289, lblCartCount.frame.origin.y, 28, 15);
    }
    else if k * item_priceArr[sender.tag] >= 100 && j != 2
    {
        lblCartCount.frame = CGRectMake(291, lblCartCount.frame.origin.y, 22, 15);
        j = 2
    }
    else if k * item_priceArr[sender.tag] <= 99 && j != 1
    {
        lblCartCount.frame = CGRectMake(293, lblCartCount.frame.origin.y, 15, 15);
        j = 1
    }
    if  k >= 0
    {
     cell.lblCount.text = "\(k)"

     lblCartCount.text = "\(cou! + (k * item_priceArr[sender.tag]))"
     defaults.setInteger(Int(lblCartCount.text!)!, forKey: appDelegate.device_id)
     defaults.setInteger(k, forKey: "Device_Key")
    }
    else
    {
     k = 0
     JLToast.makeText("0").show()
    }
}
func btnAddAction(发送方:UIButton)
{
将cell=tableView.cellforrowatinexpath(nsindepath(forRow:0,instition:sender.tag))设为!DetailTableViewCell
k++
cell.lblCount.text=“\(k)”
如果k*项目价格arr[sender.tag]>=1000
{
lblCartCount.frame=CGRectMake(289,lblCartCount.frame.origin.y,28,15);
}
如果k*item_priceArr[sender.tag]>=100&&j!=2,则为else
{
lblCartCount.frame=CGRectMake(291,lblCartCount.frame.origin.y,22,15);
j=2
}
如果k*物料价格arr[sender.tag]=1000,则为else
{
lblCartCount.frame=CGRectMake(289,lblCartCount.frame.origin.y,28,15);
}
如果k*item_priceArr[sender.tag]>=100&&j!=2,则为else
{
lblCartCount.frame=CGRectMake(291,lblCartCount.frame.origin.y,22,15);
j=2
}
如果k*item_priceArr[sender.tag]=0,则为else
{
cell.lblCount.text=“\(k)”
lblCartCount.text=“\(cou!+(k*项目\u价格arr[sender.tag])”
defaults.setInteger(Int(lblCartCount.text!),forKey:appDelegate.device\u id)
defaults.setInteger(k,forKey:“设备密钥”)
}
其他的
{
k=0
jltoos.makeText(“0”).show()
}
}

似乎变量
k
的作用域贯穿了整个viewController。因此,当k在任何单元格中更新时,所有单元格k的值都会发生变化。每个单元格都需要一个
k
变量。这可以通过在自定义单元格类中声明
var k=0
来实现

DetailTableViewCell.swift

 class DetailTableViewCell : UITableViewCell {
       var k = 0 //Add this variable to the individual cell.


 }
TableViewController.swift

func btnAddAction(sender : UIButton)
{
    let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: sender.tag)) as! DetailTableViewCell
    cell.k++ //Now use cell.k to get increment/decrement for each individual cell.
}