Как сделать перетаскивание быстрее, используя speedView в UIPanGestureRecognizer? - PullRequest
4 голосов
/ 04 августа 2011

Возникли небольшие проблемы с пониманием того, как реализовать более быструю скорость перетаскивания для кода, который я использую ниже (написанный @PaulSoltz), который позволяет перетаскивать объект по экрану.Я понимаю, что вы должны использовать метод velocityInView из UIPanGestureRecognizer, и я понимаю, что он возвращает вектор скорости x и вектор скорости y.Если скорость = расстояние во времени, то, например, velocityx = (x2 - x1) / time, и я не уверен, как использовать эту формулу, чтобы получить то, что мне нужно.По сути, я просто хочу иметь возможность регулировать скорость своего движения, чтобы сделать его немного быстрее.Может быть, я слишком много думаю, но если бы кто-нибудь мог помочь мне понять это, это было бы оценено.Спасибо.

- (void)handlePanGesture:(UIPanGestureRecognizer *)gestureRecognizer {

    UIView *myView = [gestureRecognizer view];

    CGPoint translate = [gestureRecognizer translationInView:[myView superview]];


    if ([gestureRecognizer state] == UIGestureRecognizerStateChanged || [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
        [myView setCenter:CGPointMake(myView.center.x + translate.x, myView.center.y + translate.y)];
    [gestureRecognizer setTranslation:CGPointZero inView:[myView superview]];
    }
}

1 Ответ

0 голосов
/ 04 августа 2011

Просто умножьте компоненты вектора перевода на некоторую константу.

[myView setCenter:CGPointMake(myView.center.x + translate.x * 2, myView.center.y + translate.y * 2)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...