2009-12-04 6 views
3
  1. J'ai un UIScrollView de taille 320 * 460 et avec la taille de contenu 1024 * 1024.
  2. Je peux placer 25 images de 256 * 256 dedans avec la 13ème image montrée au centre de l'écran quand elle charge avec des morceaux d'images environnantes autour de lui.
  3. Lorsque je glisse sur un côté, je veux qu'il apparaisse comme le mapView. Avec de nouvelles images apparaissant et montrant.

Comment puis-je le faire?Comment créer un UIScrollView de défilement infini?

+2

Ceci est peut-être un double de http://stackoverflow.com/questions/1710781/uiscrollview-infinite-scroll et http://stackoverflow.com/questions/1493950/uiscrollview- any-thoughts-on-implementation-infini-scroll-zoom. La dernière question a une solution réalisable. –

Répondre

0

Vérifiez l'exemple de code appelé 'Tiling'. C'est peut-être ce que vous cherchez.

+0

Je l'ai vérifié. Mais non, ce n'est pas un défilement infini. – wolverine

0

Lorsque le défilement s'arrête, ne pouvez-vous pas simplement ajuster les limites de sorte que vous soyez maintenant «recentré» avec votre nouveau décalage? Vraisemblablement, vous ne pouvez pas faire défiler plus de pixels avant que votre doigt n'atteigne le bord de l'écran. Vous n'avez donc besoin que de quelques centaines de pixels en dehors du centre d'origine. Une fois que vous avez un nouveau centre, ajustez vos limites en conséquence, en retilant si nécessaire.

+0

Ok, un doute. Dans ce que je fais, après avoir placé chaque image, je libère sa mémoire. Quand le scrollView se charge, il montre toutes ces images. Mais comme tu l'as dit quand je fais du carrelage, si j'essaye de mettre en cache certaines de ces images, est-ce que ça ne me causera pas de problèmes? – wolverine

+0

Je ne suis pas sûr de ce que vous voulez dire, mais vous devriez probablement publier une image une fois qu'elle est en dehors des nouvelles limites, en ajoutant de nouvelles références de tuiles d'image au besoin. –

+1

Je vais toujours insister pour que vous regardiez comment Tiling échantillon de code et en apprendre les tenants et les aboutissants. Comme Alex souligne le «défilement infini» que vous recherchez est plus d'un effet visuel que d'une fonction de UIScrollView. – Jessedc

1

Il est très facile & un peu délicat ...

Vous n'avez pas besoin de définir la taille spécifique pour le ScrollView .....

En général, nous utilisons pour définir .... comme par les exemples d'Apple

//#define SCROLLVIEW_CONTENT_HEIGHT 460 

//#define SCROLLVIEW_CONTENT_WIDTH 320 

qui est inutile ... si vous avez besoin de la hauteur infinie ..

situé juste à la hauteur du ScrollView dynamiquement par les objets ajoutés au ScrollView ....

Pas besoin de régler la hauteur prédéfinie pour cette ... prendre la hauteur dynamique ....

scrollview.contentSize = CGSizeMake(320, txtView.contentSize.height+450); 
CGPoint topOffset = CGPointMake(0,0); 
[scrollview setContentOffset:topOffset animated:YES]; 

Espérons que cela va sûrement travailler pour vous. .

Bonne chance :)

Questions connexes