我的表格 View 单元格上有一个按钮。我将 numberOfRowsInSection
返回为 return arrayname.count
。因此我得到的按钮数量与数组数量相同。
我使用该按钮触发通知,当用户再次按下该按钮时,通知将被取消。这是一个基于位置的通知。
如果 TableView 中只有一个按钮,则效果很好。但是当我返回 2 个或更多单元格时,我似乎无法弄清楚如何区分按钮事件而不影响另一个。 示例 - 表格中有两个单元格和两个按钮。一个用于位置“a”,一个用于位置“b”。我希望在进入区域“a”时收到通知,因此我按下与位置“a”对应的按钮。但由于未按下按钮“b”,因此不会安排通知。仅当所有按钮都处于相同状态时才可以正常工作。 但是,我该如何解决这个问题?
`button.addTarget(self, action: "pressed:", forControlEvents: .TouchUpInside)
button.setImage(UIImage(named: "a.png")!, forState: .Normal)
button.tag = 999
func pressed(sender: UIButton!) {
if sender.tag == 999
{ sender.setImage(UIImage(named: "b.png")!, forState: .Normal)
sender.tag = 0 } else
{ sender.setImage(UIImage(named: "a.png")!, forState: .Normal) sender.tag = 999 }
}`
我已经使用此代码在按下按钮时切换图像。
最佳答案
我看不出您遇到的问题与电池重用之间有任何联系。
检测按下哪个按钮的最简单方法是添加行:
button.tag = indexPath.row
到您的cellForRowAtIndexPath
函数。然后在由您的按钮触发的功能中添加:
func buttonPressed(sender:UIButton) {
let selectedItem = arrayname[sender.tag] // this gives you selected item from array
// or you can do
if sender.tag == 0 {
// button in first cell pressed
}
}
关于ios - 重复使用 TableView 中的单元格导致按钮问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31965581/