单击UITableViewCell时执行操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击UITableViewCell时执行操作相关的知识,希望对你有一定的参考价值。

我正在为Apple TV制作一个tvOS应用程序,但我的UITableView有些问题。当我点击UITableViewCell时没有任何反应。我正在使用targetForAction,但它似乎不起作用。

这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    self.tableView.dataSource = self
    self.tableView.delegate = self
}

let allData = ["Los Angeles","New York","San Fransisco"]

@IBOutlet weak var tableView: UITableView!

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return allData.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: .Default, reuseIdentifier: nil)
    cell.textLabel?.text = "(allData[indexPath.row])"
    cell.targetForAction("buttonClicked:", withSender: self)
    return cell
}

func buttonClicked(sender:AnyObject) {
    print("button clicked!")
}
答案

我找到了解决方案。我不得不添加这个功能:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    print("selected cell (indexPath.row)")
}
另一答案

斯威夫特5

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print(indexPath.row)
}
另一答案

请使用UITableView Delegate方法。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

}

以上是关于单击UITableViewCell时执行操作的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 3 中单击和双击 UITableViewCell

UITableViewCell 处于高亮状态时如何执行操作?

执行 JSON POST 时重新加载 TableView?

自定义 UITableViewCell 中的 UIImageView 在单击时调整大小

UITableViewCell 与 TextField 并检查输入

在 UITableViewCell 中无法点击 UIButton