我正在努力做我认为使用Swift的简单任务。我创建了一个Custom TableView Cell并添加了一个按钮。我希望能够看到你点击按钮时发生了一些动作。不幸的是,当我点击按钮时,没有任何事情发生。有人可以对此有所了解吗?我已将代码放在下面:
自定义TableView单元格:
import UIKit
class TestTableViewCell: UITableViewCell {
@IBOutlet weak var testBtn: UIButton!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func buttonTappedOnCell()
{
println("buttonTapped!")
}
}
以下是正在进行调用的View Controller中的代码:
func tableView(tableView: UITableView,
cellForRowAtIndexPath
indexPath: NSIndexPath) -> UITableViewCell {
tableView.registerNib(UINib(nibName:"TestTableViewCell", bundle:nil), forCellReuseIdentifier:"TestButtonCell")
let cell =
tableView.dequeueReusableCellWithIdentifier("TestButtonCell", forIndexPath: indexPath) as TestTableViewCell
cell.testBtn.addTarget(cell, action: "buttonTappedOnCell", forControlEvents: UIControlEvents.TouchDown)
return cell
}
我还尝试更改通话以包含':' - > cell.testBtn.addTarget(cell,action:" buttonTappedOnCell:",forControlEvents:UIControlEvents.TouchDown)但这不起作用。我尝试的另一件事是将调用函数移动到视图控制器中,并使目标操作指向自己。不幸的是,这也没有用。这项工作的一个简单例子很棒。在一天结束时,希望能够有一个包含6个单选按钮的自定义表格视图单元格,允许用户只选择一个。但宝贝在这一点上首先迈出了一步。谢谢你的帮助。
答案 0 :(得分:0)
我认为问题是由您在代码中指定的事件引起的。
cell.testBtn.addTarget(cell, action: "buttonTappedOnCell", forControlEvents: UIControlEvents.TouchDown)
将ToouchDown
更改为TouchUpInside
cell.testBtn.addTarget(cell, action: "buttonTappedOnCell", forControlEvents: UIControlEvents.TouchUpInside)
另外你为什么要设置programmaticaly?从您的代码中我认为您的故事板上有按钮。那么为什么要添加IBAction programmaticaly? (因为动作也在同一个类上调用)。
将您的buttonTappedOnCell
声明为IBAction并将其直接连接到storyboard / xib上的按钮。