ios - 如何在一个手势中选择多个单元格?

时间:2015-02-16 16:58:12

标签: ios uitableview

通过长按并将手指向下移动到后续单元并选择它们来选择多个UITableviewCell,

任何人都知道使用UILongPressGestureRecognizer

这样做的方法

(想想Spotify触摸预览)

1 个答案:

答案 0 :(得分:0)

这可能会变得棘手,但也许我可以指出正确的道路。

首先,您需要一种可靠的方法来启动长按并继续跟踪平底锅。您可能需要将UIPanGestureRecognizerUILongPressGestureRecognizer结合使用,应用于视图本身(而不是单元格)。当声像识别器已激活时,您需要禁用UITableView手势识别器,以免它们发生干扰。所有这些都需要UIGestureRecognizerDelegate

有关长按和长按的更多信息,请参阅此帖锅识别器:

Combining a UILongPressGestureRecognizer with a UIPanGestureRecognizer

接下来,您需要一种有效的视图中单元格命中测试方法。假设您正在将self.view用于手势识别器,请尝试:

if (panRecognizer.state == UIGestureRecognizerStateBegan || sender.state == UIGestureRecognizerStateChanged) {
    CGPoint location = [panRecognizer locationInView:self.view];
    UIView *subview = [self.view hitTest:location withEvent:nil];
}

然后,您可以将其与表格视图中的单元格相关联,然后触发选择:

if ([subview isKindOfClass:[UITableViewCell class]]) {
    NSIndexPath *path = [tableView indexPathForCell:(UITableViewCell *)subview];
    [tableView selectRowAtIndexPath:path animated:YES scrollPosition:UITableViewScrollPositionNone];
}

这完全是假设的,但它应该是解决这个问题的直接方式。挑战在于将手势识别器配置为与您的表格视图一起使用。

如果您有任何疑问,请与我联系!