拖拽在UIScrollView外部和内部删除图像

时间:2011-03-10 13:59:52

标签: objective-c uiview uiscrollview drag-and-drop

在我的项目中,我有一个滚动视图,里面有视图图像。我想将它们从我的滚动条拖到我的视图中并反向。

是否有人对此类功能有过一些经验。

1 个答案:

答案 0 :(得分:1)

从本质上讲,你想要做的就是在你想要拖动的每个视图中放置一个UIGestureRecognizer。在识别器调用的选择器中,您需要在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中删除视图(如果它在一个内部),并将其添加到所有内容的超级视图中,以便在拖动时将其放在顶部。在doDrag中:您需要将视图的位置移动到手势的位置。最后,在stopDragging中:您将要将视图添加到位于正确位置(scrollview或其他)顶部的任何视图。