2010-03-23 5 views
2

Je suis en train de savoir si je peux obtenir ce que je veux sur UIScrollView par une supercherie ou si je dois rouler ma propre défilante:iPhone: affichage déroulant avec des limites arbitraires de page/"settling"?

J'ai une série d'articles en ligne que je veux faire défiler par. Un élément doit toujours être centré dans la vue, mais les autres éléments doivent être visibles de chaque côté. En d'autres termes, je veux un défilement normal et rebondissant bord, mais je veux la décélération lorsque l'utilisateur met fin à une touche pour régler naturellement à un point d'arrêt spécifié. (En fait maintenant que j'y pense, ce comportement est similaire à coverflow à cet égard.)

Je sais UIScrollView ne fait pas cela hors de la boîte, mais est-ce que quelqu'un a des suggestions pour la façon dont il pourrait être fait pour faire cela, ou si quelqu'un a repéré un code qui accomplit quelque chose de similaire (je suis réticent à réimplémenter tous les calculs pour la décélération et le rebond de bord)

Merci à!

Répondre

3

Il n'y a pas beaucoup de ruse à ce sujet. Utilisez simplement un UIScrollView avec la pagination activée. Faites-en la taille de l'un de vos éléments et localisez-le là où vous voulez que cet élément apparaisse. Ensuite, désactivez l'option "Sous-vues du clip" dans l'affichage déroulant (soit dans IB, ou par programmation), et vous êtes tous ensemble.

+0

C'est un grand suggestion-- avait certainement pas pensé à cela. Cependant, seule la fenêtre où l'élément "courant" est visible est touchable dans ce cas. Même si les autres éléments du "carrousel" sont visibles, le scrollview ne sait pas qu'ils sont là. J'ai essayé la mise en place d'une vue support transparent pour saisir toutes les touches et les envoyer à la vue de défilement, mais le scrollview ne semble pas être intéressé. Pensées? –

+0

J'ai résolu cela en y mettant quelques boutons transparents. Si l'utilisateur tape dessus, je laisse le scrollview afficher l'élément suivant (ou précédent). Fonctionne assez intuitive, où je l'ai utilisé. –

Questions connexes