ios - 重复使用 TableView 中的单元格导致按钮问题

标签 ios iphone swift uitableview ios8

我的表格 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/

相关文章:

ios - getPlaceholderTemplateForComplication() 方法何时被调用?

ios - 计算短距离行驶 IOS

iphone - iPad 上的 UITabBar 无响应

swift - 在 swift 中使用跨类变量

swift - 为什么 `String(describing: Class.self)` 比 `NSStringFromClass(Class.self)` 慢?

ios - 在 iOS 上的 Swift 中将字节流保存到文件

ios - View Controller 中顶部元素垂直空间的变化

ios - 状态栏样式 - Swift 3 - 随时更改

iphone - 如何维护 UITableView 中特定按钮的状态(即停止覆盖图像)

iphone - 调用当前的 Modal ViewController 两次?