当您在tableview中滚动时,它不会在您的手指所在的单元格上开始表委托方法didSelectRowAtIndexPath方法。如果我要点击该调用,而不是向上/向下滑动,它会使用委托方法向我授予indexPath。
我想知道在滚动tableView时是否可以获取手指所在的单元格的indexPath。这可能吗?
答案 0 :(得分:2)
我猜您可以访问表格视图的panGestureRecognizer
(因为它是一种滚动视图)并从中获取locationInView:
。然后,您可以要求表视图将其转换为indexPathForRowAtPoint:
的索引路径。
答案 1 :(得分:2)
这可能是要走的路:
class TableViewController: UITableViewController {
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 50
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("Cell")
if cell == nil {
cell = UITableViewCell(style: .Default, reuseIdentifier: "Cell")
}
cell.textLabel?.text = "\(indexPath.row)"
return cell
}
override func scrollViewWillBeginDragging(scrollView: UIScrollView) {
let location = scrollView.panGestureRecognizer.locationInView(tableView)
guard let indexPath = tableView.indexPathForRowAtPoint(location) else {
print("could not specify an indexpath")
return
}
print("will begin dragging at row \(indexPath.row)")
}
}