Swift - 如何从单元格内单击 UIImageView 上的自定义 UITableViewCell 获取行数据

Swift - How to get row data from custom UITableViewCell on UIImageView click from within the cell

我正在尝试获取与 UITableViewCell 相关联的数据,其中 UIImageView 在单元格中被单击。我目前必须捕获点击事件的代码工作正常。但是,一旦进入调用的点击功能,我就无法从点击 UIImageView 的同一 UITableViewCell 检索相关数据。这是我用来设置点击事件的代码。此代码包含在 cellForRowAtIndexPath:

    var tap = UITapGestureRecognizer(target: self, action: Selector("staticMap_click:"))
    cell.imgStaticMap.addGestureRecognizer(tap)
    cell.imgStaticMap.userInteractionEnabled = true

这是单击 UIImageView 时调用的函数 staticMap_click

func staticMap_click(sender:UITapGestureRecognizer)
{
    let rowData: NSDictionary = self.arrayPosts[sender.valueForKey("row") as Int] as NSDictionary

    mdblStaticLat = rowData["dblLat"] as String
    mdblStaticLong = rowData["dblLong"] as String
    self.performSegueWithIdentifier("sgShowMapFromStaticClick", sender: self)
}

如您所见,我不确定如何引用被单击行的数据。我尝试在 UIImageView 上设置标签,但没有成功。我还尝试在 UITapGestureRecognizer 上设置一个标签,但我也没能让它起作用。

有谁知道如何从点击 UIImageView 的选定行中引用数据?

您可能对

感兴趣
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
}

只要按下单元格,就会调用此函数。
您可以使用 indexPath.row

访问按下的行

此外,您还可以使用

func staticMap_click(sender:UITapGestureRecognizer){
    let tappedView = sender.view as? UIImageView
    let indexPath = (tappedView.superview as UITableView).indexPathForCell(self)
}

如果您只希望图像可点击,则获取被点击的单元格

此代码还将 return 一个 indexPath,您将能够再次使用 indexPath.row 来获取行。
如果认为有必要,获取该行将使您能够从数组中获取数据