2010-08-06 23 views

Répondre

5

Bien sûr, vous avez besoin de trois vues. À tout moment, vous avez une vue de gauche, une vue de droite et une vue actuelle.

Cela nécessite la notification de chaque mouvement via UIScrollViewDelegate.

Si vous détectez que vous avez bougé à droite, vous libérez à gauche, faites gauche = courant, courant = droit, et créez un nouveau droit.

Si vous constatez que vous vous êtes déplacé à gauche, vous libérez à droite, faites à droite = courant, courant = gauche et créez une nouvelle gauche.

De manière générale, toute vue située à plus d'une page du courant n'est pas requise. Vous n'avez donc besoin que de trois pages au total.

Bien sûr, vous devez également manipuler la position de l'UIScrollView afin de pouvoir effectuer les mouvements. Le résultat net est que vous ne bougez pas bien qu'il semble que vous l'ayez fait. Lorsque vous avez fait le parchemin, et modifié les vues selon la gauche/de lecture aléatoire/droite - vous

[self scrollRectToVisible:(middle frame) animated:NO]; 

de sorte que vous êtes toujours à la même page réelle, avec une page de chaque côté de celui-ci. Lorsque le défilement se produit, il semble que l'utilisateur puisse continuer à défiler dans une boucle - mais après chaque page, les vues sont mélangées, la position dans la vue défilée est ramenée au milieu et l'utilisateur peut défiler à nouveau.

Pour revenir au début, il suffit d'utiliser la vue relative à l'objet qui se trouve à l'autre extrémité de la structure de données que vous utilisez, donc current = [(NSArray)data lastObject] puis right = [(NSArray)data objectAtIndex:0].

+0

Merci pour votre réponse. – pcjbird