2011-04-17 2 views
1

Je voudrais créer un scrollView infini (comme une machine à sous), mais sans pagination. Lorsque l'utilisateur fait défiler vers le bas, il est facile que je viens d'augmenter la contentSize et le défilement ScrollView sans fin:Infinis UIScrollView dans les deux sens

- (void)scrollViewDidScroll:(UIScrollView *)theScrollView { 
    theScrollView.contentSize = CGSizeMake(45, theScrollView.contentSize.height+45); 
} 

Mais comment puis-je créer le même effet lorsque l'utilisateur fait défiler vers le haut? J'ai essayé de jouer avec le contentInset mais ensuite le contentOfsset n'est pas mis à jour et je finis par avoir un comportement bizarre.

Avez-vous une idée de comment je pourrais y parvenir?

Répondre

0

Je pense que vous devriez nous donner plus de détails sur le problème. Quel contenu voulez-vous que l'utilisateur voit quand il fait défiler vers le haut? Vous augmentez la méthode contentSize dans scrollViewDidScroll, mais vous ne vérifiez pas le paramètre contentOffset, donc le contenu sera plus grand chaque fois que l'utilisateur fait défiler le scrollView (de toute façon, même horizontal si autorisé). Comme contentOffset est déjà à 0, l'utilisateur ne peut pas faire défiler vers le haut car il n'y a rien que la vue de défilement puisse montrer.

Je ne connais pas le contenu de votre scrollView, mais j'ai implémenté le défilement horizontal à l'infini. Pour plus de détails, voir: https://stackoverflow.com/a/12856174/936957

PS: Ne pas utiliser "nombres magiques", ceci est une meilleure alternative:

theScrollView.contentSize = CGSizeMake(theScrollView.contentSize.x, theScrollView.contentSize.height+45); 
//Or theScrollView.frame.size.width alternatively 
Questions connexes