我有一个包含TableView的ViewController。我想在每个单元格中,一个红色按钮做了一些事情(让我们说'你好'进行测试),或者当我触摸单元格而不是按钮时我执行了一个segue。
但即使我触摸按钮,它也是表演者。我在SF上尝试了一些搜索,但没有一个问题可以帮助我...
我不知道这是否正常但是当我触摸单元格时,所有行白色背景变为灰色,甚至是红色按钮的背景。
在故事板中我有这个单元格层次结构:
在单元格和按钮上都启用了用户交互。
在我发现的问题中,他们说,在电池组上配件'关于披露指标',我做到了,但是如果可能的话我想把它保留在'无'。 我还为单元格设置了一个自定义类,这里是代码:
class MyTableViewCell: UITableViewCell {
@IBOutlet weak var rentButton: UIButton? // I use this class for 2 tableview almost similar, but in the other I don't have the redButton, that's why I put an '?'
}
我还将tableView的委托和数据源设置为我的ViewController,这是我的视图控制器的代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! MyTableViewCell
cell.rentButton!.tag = indexPath.row
cell.rentButton!.addTarget(self, action: #selector(MyViewController.rent(_:)), forControlEvents: .TouchUpInside)
return cell
}
// Rent() is never called:
func rent(sender: UIButton) {
print("here \(sender.tag)")
}
编辑:解决方案是从视图中取出按钮!