перетащите изображение снаружи и внутри UIScrollView - PullRequest
2 голосов
/ 10 марта 2011

В моем проекте у меня есть прокрутка с просмотром изображений внутри. Я бы хотел перетащить их из моего скроллера в мой вид и против часовой стрелки.

Есть ли кто-то, кто имеет некоторый опыт работы с этим типом функции.

1 Ответ

1 голос
/ 02 марта 2012

По сути, вы захотите сделать это, поместив 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: удалить представление из представления прокрутки (если оно внутри него) и добавить его в суперпредставление всего, чтобы оно было сверху при перетаскивании. В doDrag: вы захотите переместить местоположение представления в положение жеста. Наконец, в stopDragging: вы захотите добавить представление к любому представлению, над которым оно находится (представление прокрутки или иным образом) в правильном месте.

...