swift 3原型单元格当前行按钮

时间:2017-01-28 19:21:35

标签: swift uitableview

我尝试做一个待办事项的应用程序。 我使用的是原型单元,而我现在遇到的问题是,当我按下按钮时,没有任何反应

到目前为止,这可以获得按钮的行。

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

    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath) as! TableViewCell

    let task = tasks[indexPath.row]


    cell.uncheckbox.tag = indexPath.row
    cell.uncheckbox.addTarget(self, action: #selector(ViewController.Test), for: UIControlEvents.touchUpInside)

    cell.textField.isEnabled = false
    cell.importantImage.isHidden = true


    if(task.isImportant){
        cell.textField?.text =  task.name!
        cell.importantImage.isHidden = false;
    }else{
        cell.textField?.text = task.name!
    }

    return cell;
}

@IBAction func Test(sender: UIButton)
{
    let row = sender.tag

    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell") as! TableViewCell

    print(row)
    print(row == 0)
    if(row == 0){

         cell.textField?.text =  "change the text"
    }



}

问题是,一旦按下按钮,当前单元格就没有任何反应。我猜它还没有进入正确的行。

当我只打印行然后按下按钮时,我从按钮

中得到正确的值

1 个答案:

答案 0 :(得分:0)

找到了一种方法:

我调用了TableViewCell类中的按钮

globals()

在vieClass里面我使用了这个

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

 // when i press the add button it checks all buttons
@IBAction func testing(_ sender: Any) {
    if(isBoxClicked == true)
    {
        uncheckbox.setImage(checkBox, for: UIControlState.normal)
        self.textField.backgroundColor = UIColor.red
        isBoxClicked = false
    }else{
       uncheckbox.setImage(uncheckBox, for: UIControlState.normal)
         self.textField.backgroundColor = UIColor.white
        isBoxClicked = true
    }
} 

cell.testing(cell.uncheckbox)

    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath) as! TableViewCell