找出单击单元格的坐标

时间:2015-05-18 17:40:11

标签: ios uitableview swift

我遇到了在swift中构建应用程序的问题。基本上我有一个tableview,显示自定义单元格中的数据。现在这个细胞分为两个图像;一个在左边,一个在右边。

单击单元格时;调用didSelectRowAtIndexPath方法然而我想找出单击的单元格的哪个部分;无论是正确的图像还是左图像。

执行此操作的一种方法是覆盖自定义单元类的touchesbegan事件;我可以通过这种方式获得触摸的坐标,并手动检查左图像或右图像是否被选中;但是这会导致d idSelectRowAtIndexPath事件没有被触发。

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
    let touch = touches.first as! UITouch
    let location = touch.locationInView(self)
    var xcoord = location.x
    touchPosition = xcoord
}

这段代码是我尝试在自定义单元格类中使用的,但我现在还不知道如何触发此单元格所在表的didSelectRowAtIndexPath事件。我也没有提到那张桌子。

这里touchPosition是一个全局变量,我试图设置它,以便我可以使用didSelectrowAtIndexPath方法访问它,但它不会被解雇。

1 个答案:

答案 0 :(得分:0)

selected函数中设置单元格的touchesBegan属性应该使代理人调用didSelectRowAtIndexPath

如果这不起作用,您可以试试这个:

在自定义单元格类中创建weak var tableView: UITableView?。同时添加var indexPath: NSIndexPath以了解UITableViewCell中单元格的索引路径。然后在创建单元格时,将tableView设置为表视图,将indexPath设置为其索引路径。

现在,您有一个指向表视图委托的链接。因此,在自定义单元格类touchesBegan中,您可以调用tableView?.delegate?.tableView?(tableView, didSelectRowAtIndexPath: indexPath)