2010-04-26 5 views
0

En fait, j'ai une vue défilante. Dans ce que j'utilise 30 boutons. Quelle est mon exigence est que je dois réorganiser les boutons. Comme, quand j'ai touché un bouton, il devrait être sélectionné avec notre touche. et partout où nous nous déplaçons dans la vue de défilement, il devrait se déplacer avec notre contact. Une fois le contact terminé, les boutons doivent être intervertis. Quelqu'un peut-il m'aider à ce sujet .........Ne pouvons-nous pas utiliser touchesBegan, touchesMoved, touchEnded pour un scrollview?

+0

Quelle partie de vos besoins, vous avez des problèmes avec? – Vladimir

Répondre

0

Vous pouvez faire ce comportement, mais il y a beaucoup de travail. Vous devez ensuite:
1. Créez la sous-classe UIControl qui sera vos boutons.
2. Remplacer toutes les touches * méthodes là.
3. Implémentez là le support du comportement standard d'uicontrol + le comportement de déplacement.

#pragma mark - 
#pragma mark Touches delegate methods 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

    UITouch *touch = [touches anyObject]; 
    [self performSelector:@selector(delayedTouchBeging:) withObject:touch afterDelay:0.15]; 

    [super touchesBegan:touches withEvent:event]; 

} 


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    if (dragging) { 
     // move your view in new position here  
    } else { 
     [super touchesMoved:touches withEvent:event];  
    } 

} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 

    if (dragging) { 

     // Do other stuff if you need 

    } else { 
     [super touchesEnded:touches withEvent:event]; 
    } 

    dragging = NO; 
    [NSObject cancelPreviousPerformRequestsWithTarget:self]; 

} 


- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self touchesEnded:touches withEvent:event]; 
} 

- (void) delayedTouchBeging:(UITouch*) touch { 
    dragging = YES; 

    [self cancelTrackingWithEvent:nil]; 

    // Do here stuff about begin moving (animation, etc) 

} 
0

Vous pouvez regarder la façon dont ils le code « lanceur » comme une partie du catalogue de code Three20 qui est disponible gratuitement. Ils font exactement quelque chose comme ça (et imite la vue des applications iPhone où vous pouvez déplacer des applications ou les supprimer).

http://github.com/facebook/three20

Questions connexes