xcode 如何知道是否选择了 UITableView 的单元格?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/26318229/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 05:50:52  来源:igfitidea点击:

How can I know if a cell of UITableView is selected?

iosxcodeuitableviewswift

提问by rocket101

I am writing an app in Swift with XCode. It includes a UITableView. Just one question - in Swift, how can I tell what cell is selected by the user?

我正在使用 XCode 在 Swift 中编写一个应用程序。它包括一个UITableView. 只有一个问题 - 在 Swift 中,我如何知道用户选择了哪个单元格?

To clarify:

澄清:

  1. A user selects the cell with the label "foo"
  2. The code should return "foo", or whatever is selected by the user
  1. 用户选择带有标签“foo”的单元格
  2. 代码应返回“foo”或用户选择的任何内容

回答by tiritea

Assuming you have the indexPath of the cell in question - eg from within any of your UITableViewDelegate or UITableViewDataSource methods,

假设您有相关单元格的 indexPath - 例如从您的任何 UITableViewDelegate 或 UITableViewDataSource 方法中,

BOOL selected = [tableView.indexPathsForSelectedRows containsObject:indexPath];

回答by bllakjakk

You can tell what cell is selected by User by adding following function in your view controller.

您可以通过在视图控制器中添加以下功能来判断用户选择了哪个单元格。

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
...

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    println("You selected cell #\(indexPath.row)!")
}

...

}

}

So now it depends that whether you are having an array to display the text names of each cell. If yes you can use this indexPath.row to retrieve the text of the row user selected.

所以现在这取决于您是否有一个数组来显示每个单元格的文本名称。如果是,您可以使用此 indexPath.row 来检索用户选择的行的文本。

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    var tableView : UITableView!
    var data:String[] = ["Cell 1","Cell 2","Cell 3","Cell 4"]


func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
        let cell : UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as UITableViewCell
        cell.text = self.data[indexPath.row]
        return cell
    }

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
         println("SELECTED INDEX /(indexPath.row)")
         println("Selected Cell Text /(data[indexPath.row])")
}