0

我有一个tableView,我希望当我长按一个单元格时,它会在顶层视图中添加一个子视图,我可以在屏幕上拖动那个新的子视图。

现在我已经添加了一个UILongPressGestureRecognizertableView并且在长按句柄中我添加了我想要的子视图。但我不能移动它。我在子视图类中添加了 -(void) touchesMoved:(NSSet *) touches withEvent:(UIEvent *)事件。它起作用了,但我必须用 2 次点击来完成,一次是在长按处理程序中添加新的子视图,另一次是在子视图类中调用 touchesMoved。

知道如何在一次按住和拖动中做到这一点吗?

4

1 回答 1

0

在我进行任何挖掘之前,我已经考虑了你的问题,似乎做你想做的更好的方法是将代码移动-touchesMoved:withEvent:到你的 UITableViewCell 类中。这样,单元格仍在处理触摸,您不必在添加子视图后重新处理触摸的处理方式。所以:

在您的自定义 UITableViewCell 子类的实现文件中:

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    UITouch* touch = [touches anyObject];
    CGPoint location = [touch locationInView:self];
    [yourSubview setCenter:location];
}

这应该够了吧。

于 2012-07-17T21:32:59.193 回答