Swift - 自定义TableView不执行单击UIButton

时间:2015-02-12 20:18:06

标签: ios uitableview cocoa-touch swift

我正在努力做我认为使用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个单选按钮的自定义表格视图单元格,允许用户只选择一个。但宝贝在这一点上首先迈出了一步。谢谢你的帮助。

1 个答案:

答案 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上的按钮。