2009-06-24 8 views

Répondre

6

Vous devez:

  1. A ScrollView avec la pagination est activée, trois écrans larges.
  2. Pour avoir trois sous-vues dans votre scrollview - L (contenu gauche, à 0,0), C (contenu central, à 320,0), R (contenu à droite, à 640,0). C est le contenu que vous voulez montrer initialement. L est le contenu à afficher si l'utilisateur fait défiler vers la gauche.
  3. Définissez l'attribut contentoffset de la vue de défilement sur 320 (en mode portrait), car vous souhaitez que C s'affiche initialement, pas L.
  4. Chaque fois qu'un défilement se termine, l'élément contentoffset est un nombre entier d'écrans. Si vous affichez toujours C (contentoffset est 320), alors vous allez bien. Si contentoffset est maintenant 0 ou 640, vous avez un peu de travail à faire.

Si l'utilisateur fait défiler à gauche - vous avez la même hiérarchie de vue, mais maintenant la scrollview montre L plutôt que C, parce que le contentoffset est 0, avec un scrolloffset de 0. Vous devez maintenant réinitialiser tout le contenu afin vous avez XLC et un scrolloffset de 320 - dans le cas où l'utilisateur veut faire défiler à gauche à nouveau. En d'autres termes, C devient le nouveau R, L devient le nouveau C, et X est le nouveau contenu à afficher si l'utilisateur fait défiler à gauche.

La méthode pour annuler le faire est:

(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView 
+0

Merci pour la réponse rapide! :) –

0

je referais ce en utilisant un CATransition, avec le type kCATransitionPush.

CATransition *animation = [CATransition animation]; 
[animation setType:kCATransitionPush]; 
[animation setSubtype:kCATransitionFromRight]; //or ...FromLeft, as the case may be 

J'ai obtenu de meilleures performances avec CATransitions que d'autres techniques jusqu'à présent, mais cela pourrait dépendre de plusieurs facteurs. Jetez un oeil à la classe TransitionView dans l'exemple de code d'Apple pour un exemple de la façon de construire une vue qui fait des transitions. Avec cette classe, vous pouvez faire:

- (void)replaceSubview:(UIView *)oldView withSubview:(UIView *)newView transition:(NSString *)transition direction:(NSString *)direction duration:(NSTimeInterval)duration; 
+0

Merci aussi! Je vais essayer et voir ce que j'aime. –

Questions connexes