Вопрос по iphone, ios – почему происходит задержка при перемещении объекта с использованием UIPanGestureRecognizer

14

Я перемещаю объект UIView с помощью UIPanGestureRecognizer - насколько сильно я перетаскиваю палец на экране, насколько сильно я перемещаю вид в одном направлении (только по X - влево или вправо, Y не изменяется). Работает нормально, но с (очень заметной) задержкой.

Вот метод, который обрабатывает событие UIPanGestureRecognizer:

-(void)movePages:(UIPanGestureRecognizer *)sender
{
    if(switchingMode == 1){
        if([sender state] == UIGestureRecognizerStateBegan){
            fingerStartPosition = [sender locationInView:self.view].x;
            viewStartPosition = [[viewControllers objectAtIndex:activeViewControllerIndex] view].center;
        }
        [[[[viewControllers objectAtIndex:activeViewControllerIndex] view] layer] setPosition:CGPointMake(viewStartPosition.x - (fingerStartPosition - [sender locationInView:self.view].x) , viewStartPosition.y)];

    }
}

Я пытался установить положение вида, используя его слой, я также пытался установить кадр, используя анимацию разной длительности, но все вели себя одинаково. Есть идеи, почему происходит такая задержка?

Error: User Rate Limit Exceeded Ixx

Ваш Ответ

3   ответа
2

Error: User Rate Limit Exceeded

Documentation:

A panning gesture is continuous. It begins when the minimum number of fingers allowed have moved enough to be considered a pan.

Error: User Rate Limit ExceededtouchesMoved:.

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded Michael
39

Error: User Rate Limit ExceededUILongPressGestureRecognizerError: User Rate Limit ExceededminimumPressDurationError: User Rate Limit Exceeded0.0Error: User Rate Limit ExceededUIGestureRecognizerStateChangedError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededUILongPressGestureRecognizerError: User Rate Limit ExceededallowableMovementError: User Rate Limit ExceededCGFloat.infinityError: User Rate Limit Exceeded
Error: User Rate Limit Exceededtranslation(in:)Error: User Rate Limit ExceededUIPanGestureRecognizer :/
2

Error: User Rate Limit Exceeded

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
    if touches.count == 1
    {
        initialTouchLocation = (touches.first?.locationInView(self).x)!
    }
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?)
{
    if touches.count == 1
    {
        let locationInView = touches.first?.locationInView(self)
        if !thresholdHit
        {
            //this is the threshold for x movement in order to trigger the panning...
            if abs(initialTouchLocation - locationInView!.x) > 1
            {
                thresholdHit = true
            }
        }
        else
        {
            if (self.frame.width != CGFloat(screenSize))
            {
                let panDelta = initialTouchLocation - locationInView!.x
            }
        }
    }
}
Error: User Rate Limit Exceeded

Похожие вопросы