从UITapGestureRecognizer获取UITableViewCell

iOS*_*ner 6 uitableview ios uitapgesturerecognizer swift

我有一个带有多个部分的UITableView,在我的cellForRowAtIndexPath方法中,我将一个UITapGestureRecognizer添加到单元格的imageView(每个单元格都有一个小图像).我通过使用以下方式成功访问该图像(以便更改它):

var imageView : UIImageView! = sender.view! as UIImageView
Run Code Online (Sandbox Code Playgroud)

但是,我现在需要做的是访问单元格的数据,我相信这意味着我需要能够访问单元格以获取节和行号.任何人都可以建议如何做到这一点?我的想法是,如果任务完成,我将图像更改为未选中的复选框,但在我的数据中,我需要将该任务标记为已完成.

Ian*_*Ian 20

在处理轻击手势识别器tableViewindexPathForRowAtPoint函数中,使用函数来获取触摸事件的可选索引路径,如下所示:

func handleTap(sender: UITapGestureRecognizer) {
    let touch = sender.locationInView(tableView)
    if let indexPath = tableView.indexPathForRowAtPoint(touch) {
        // Access the image or the cell at this index path
    }
}
Run Code Online (Sandbox Code Playgroud)

从这里,您可以调用cellForRowAtIndexPath获取单元格或其任何内容,因为您现在拥有单击单元格的索引路径.


EI *_*2.0 6

您可以获取图像的位置以查找indexPath,然后从中找到具有该图像的单元格:

var position: CGPoint =  sender.locationInView(self.tableView)
var indexPath: NSIndexPath = self.tableView.indexPathForRowAtPoint(position)!    
var cell = self.tableView(tableView, cellForRowAtIndexPath: indexPath)
Run Code Online (Sandbox Code Playgroud)