gpt4 book ai didi

swift - Tableview 单元格按钮选择错误

转载 作者:行者123 更新时间:2023-11-28 08:32:16 29 4
gpt4 key购买 nike

我有一个表格 View ,在单元格的左侧包含一个按钮。运行效果很好,当我选择一个按钮时,它会改变它的图像背景。问题是当我选择一个按钮时 ButtonOne selection ,当我向下滚动 tableview 时它会选择其他按钮,Other buttons selected我的代码是这样的:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableview.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! PlayerCell
cell.BtnAdd.tag = indexPath.row
cell.BtnAdd.addTarget(self, action: #selector(CreateTeamTwo.PlayerAdded(_:)), forControlEvents: .TouchUpInside)
return cell
}

func PlayerAdded(sender: UIButton){
// let buttonTag = sender.tag
sender.setImage(UIImage(named: "btn_buy_minus.png"), forState: UIControlState.Normal)
}

你能帮帮我吗?

最佳答案

取一个Array来存放选中的indexPaths Buttons标签。并在选择器方法中存储所有发件人标签并重新加载 tableView。并在 cellForRow 方法中检查当前索引路径是否包含在所选数组中,然后显示负图像,否则显示正图像。

var selected = [Int]()


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableview.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! PlayerCell
cell.BtnAdd.tag = indexPath.row
cell.BtnAdd.addTarget(self, action: #selector(CreateTeamTwo.PlayerAdded(_:)), forControlEvents: .TouchUpInside)

if selected.contains(indexPath.row) {
cell.btn.setImage(UIImage(named: "btn_buy_minus.png"), forState: .Normal)
} else {
// here set the plus image
cell.btn.setImage(UIImage(named: "btn_buy_plus.png"), forState: .Normal)
}
return cell
}

func PlayerAdded(sender: UIButton){
selected.append(sender.tag)
self.tableView.reloadData()
}

关于swift - Tableview 单元格按钮选择错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38634213/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com