Objective c 拖放;在UIScrollView内外放置图像

Objective c 拖放;在UIScrollView内外放置图像,objective-c,uiview,uiscrollview,drag-and-drop,Objective C,Uiview,Uiscrollview,Drag And Drop,在我的项目中,我有一个滚动视图,其中包含一个视图图像。我想把它们从我的滚动条中拖到我的视图中,然后反方向移动 是否有人对这类功能有一定的经验。本质上,您想做的是在每个要拖动的视图中放置一个UIgestureRecognitor。在识别器调用的选择器中,您需要在switch语句中处理每种类型的状态,如下所示: - (void)handleDragging:(UILongPressGestureRecognizer *)gestureRecognizer { switch ([ges

在我的项目中,我有一个滚动视图,其中包含一个视图图像。我想把它们从我的滚动条中拖到我的视图中,然后反方向移动


是否有人对这类功能有一定的经验。

本质上,您想做的是在每个要拖动的视图中放置一个UIgestureRecognitor。在识别器调用的选择器中,您需要在switch语句中处理每种类型的状态,如下所示:

- (void)handleDragging:(UILongPressGestureRecognizer *)gestureRecognizer
{    
    switch ([gestureRecognizer state]) 
    {
        case UIGestureRecognizerStateBegan:
            [self startDragging:gestureRecognizer];
            break;
        case UIGestureRecognizerStateChanged:
            [self doDrag:gestureRecognizer];
            break;
        case UIGestureRecognizerStateEnded:
        case UIGestureRecognizerStateCancelled:
        case UIGestureRecognizerStateFailed:
            [self stopDragging:gestureRecognizer];
            break;
        default:
            break;
    }
}

这将提供3个入口点。在startDrag中,我建议您从scrollview中删除视图(如果它在其中),并将其添加到所有内容的superview中,以便在拖动时它位于顶部。在doDrag中:您需要将视图的位置移动到手势的位置。最后,在StopDraging中:您需要将视图添加到其顶部的任何视图(scrollview或其他视图)的正确位置。

关于此答案的详细信息。修复了我的实现中的几个问题。