2010-07-15 4 views
5

Est-il correct de surcharger -handlePan: dans une sous-classe UIScrollView? , c'est-à-dire que mon application ne sera pas rejetée de l'App Store?Overriding -handlePan: dans UIScrollView

Merci de nous avoir donné votre avis.

Éditer: qu'en est-il de l'appel de -handlePan: dans une autre méthode de ma sous-classe?

Répondre

8

Au cas où quelqu'un serait intéressé, ce que j'ai fait au lieu de surcharger était de désactiver le UIPanGestureRecognizer par défaut et d'ajouter une autre instance de UIPanGestureRecognizer qui est mappée à mon gestionnaire personnalisé.

Modifier pour twerdster:

Je l'ai fait comme ça

//disables the built-in pan gesture 
for (UIGestureRecognizer *gesture in scrollView.gestureRecognizers){ 
    if ([gesture isKindOfClass:[UIPanGestureRecognizer class]]){ 
    gesture.enabled = NO; 
    } 
} 

//add your own 
UIPanGestureRecognizer *myPan = [[UIPanGestureRecognizer alloc] init...]; 
//customize myPan here 
[scrollView addGestureRecognizer:myPan]; 
[myPan release]; 
+0

Comment avez-vous fait exactement cela? – twerdster

+0

Comment avez-vous désactivé la valeur par défaut et comment avez-vous spécifié le nouveau comportement afin qu'il corresponde à l'ancien comportement et ajoute votre propre gestionnaire? – twerdster

+1

@twerdster voir la publication mise à jour. – Altealice

4

Vous pouvez rendre le code encore plus court.

//disables the built-in pan gesture 
scrollView.panGestureRecognizer.enabled = NO; 

//add your own 
UIPanGestureRecognizer *myPan = [[UIPanGestureRecognizer alloc] init...]; 
[scrollView addGestureRecognizer:myPan]; 
[myPan release]; 
+3

La propriété panGestureRecognizer est uniquement ajoutée dans iOS 5. J'ai créé le code ci-dessus pour iOS 3.2, ce qui était la seule façon de le faire. Bon conseil, néanmoins. – Altealice