2010-09-22 12 views
0

Je suis en train de développer une nouvelle application et j'ai besoin de mettre en œuvre une fonctionnalité très souvent utilisée dans de nombreuses applications. Je veux implémenter les fonctions "page suivante"/"page précédente" avec un mouvement de glissement respectivement de gauche à droite pour le cas "page suivante" et de droite à gauche dans l'autre. J'ai vu quelque chose à propos de GestureRecognizer qui pourrait peut-être m'aider, mais malheureusement je suis en train de développer sous la version 3.1.2 du firmware et ce n'est pas encore supporté. Une suggestion ou un lien avec un tutoriel?iphone slide movement recognizer

Merci

Répondre

0

Pour répondre à votre question avec un code, voici ma version d'un excellent exemple, donné dans this thread.

- (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]; 
} 
+0

cool !!! Merci beaucoup !! – Marco

1

Jetez un oeil à mon code:

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

Vous pouvez changer la direction du glissement etc ;-)

Edit: oh je ne vois pas la fin de votre question: p Donc, vous devez implémenter un UIView et détecter les touchBegan et touchEnd, enregistrer CGPoint a commencé et se terminer et décider s'il s'agit d'un balayage ou nop;)