Распознаватель движения слайдов iphone

Я разрабатываю новое приложение, и мне нужно реализовать функциональность, которая часто используется во многих приложениях. Я хочу реализовать функции "следующая страница" / "предыдущая страница" скользящим жестом соответственно слева направо для случая "следующая страница" и справа налево в другом. Я видел кое-что о GestureRecognizer, которое, возможно, может мне помочь, но, к сожалению, я разрабатываю версию 3.1.2 прошивки, и она пока не поддерживается. Любое предложение или ссылка с любым учебником?

Спасибо

2 ответа

Решение

Чтобы ответить на ваш вопрос с помощью некоторого кода, это моя версия отличного примера, приведенного в этой теме.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = touches.anyObject;
    //Define "CGPoint startTouchPosition;" in  your header
    startTouchPosition = [touch locationInView:self];
    [super touchesBegan:touches withEvent:event];
}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{
    UITouch *touch = touches.anyObject;
    CGPoint currentTouchPosition = [touch locationInView:self];

    // If the swipe tracks correctly.
   double diffx = startTouchPosition.x - currentTouchPosition.x + 0.1;
   double diffy = startTouchPosition.y - currentTouchPosition.y + 0.1;

   //If the finger moved far enough: swipe
    if(abs(diffx / diffy) > 1 && abs(diffx) > 100)
    {
       if (!swipeHandled) {
        [self respondToSwipe];

        //Define "bool swipeHandled;" in your header
        swipeHandled = true;
       }
    }

   [super touchesMoved:touches  withEvent:event];
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    swipeHandled = true;
    [super touchesEnded:touches withEvent:event];   
}

Посмотрите на мой код:

UISwipeGestureRecognizer * swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget: self action: @selector (myFunction)];
[swipeRecognizer setDirection: UISwipeGestureRecognizerDirectionRight];
[view addGestureRecognizer: [autoRelease swipeRecognizer] ];

Вы можете изменить направление удара и т. Д.;

Изменить: о, я не видел конец вашего вопроса: p Так что вы должны реализовать UIView и обнаружить touchesBegan и touchesEnd, сохранить начало и конец CGPoint и решить, является ли это пролистыванием или остановкой;)

Другие вопросы по тегам