我尝试做一个待办事项的应用程序。 我使用的是原型单元,而我现在遇到的问题是,当我按下按钮时,没有任何反应
到目前为止,这可以获得按钮的行。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"
}
}
问题是,一旦按下按钮,当前单元格就没有任何反应。我猜它还没有进入正确的行。
当我只打印行然后按下按钮时,我从按钮
中得到正确的值答案 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