2010-12-08 18 views
1

J'ai un tas de "diapositives" que j'essaie de montrer sur l'iPad, une à la fois, en utilisant un UIScrollView. Les "diapositives" sont différentes sous-classes de la classe UIViewController.Aide à l'implémentation de "Horizontal UITableViewController"?

Je stocke mes diapositives dans NSUserDefaults, représenté par NSDictionaries. Au démarrage, je charge le NSArray de NSDictionaries et je le passe en boucle, en passant les vues à UIScrollView. À l'heure actuelle, cette méthode est inefficace, car toutes les diapositives sont conservées en mémoire, même en dehors de l'écran. Je suppose que je devrais faire en sorte qu'il se comporte un peu comme le UITableViewController, en termes de réutilisation des diapositives et de libération des diapositives quand elles sont hors écran et de les recréer à mesure qu'elles apparaissent à l'écran.

J'ai deux questions.

  • Premièrement, comment UITableViewController gère-t-il le remplacement de cellules? Où puis-je trouver des exemples de code ou d'algorithmes? Deuxièmement, comment puis-je réutiliser les diapositives si elles ne sont pas toutes du même type?

Répondre

1

j'ai écrit une réponse sur un UIScrollView cyclique ici:

How to implement a cyclic UIScrollView?

Si vous utilisez cette approche, vous ne avez vraiment besoin 3 vues chargées à tout moment. Si vos vues ne sont pas toutes de même type, il vous suffit d'implémenter autant de points communs que possible dans une sous-classe UIView et d'effectuer la personnalisation nécessaire (réglage de l'image etc.) avant l'affichage. Il devrait être possible de n'en créer que trois. Celui que vous faites défiler vers commence à afficher, celui que vous faites défiler loin est modifié pour l'affichage comme il défile dans la vue ...

ABC

Trois vues - A et C ne sont pas visibles, B est visible.

Si vous faites défiler vers la droite une partie de B, une partie de C est visible. A peut être réutilisé et déplacé logiquement à suivre C de sorte que vous avez

BCA

Continuez à défiler vers la droite, modifier B et de le rendre logiquement après un

CAB

Si vous faites défiler la d'une autre façon la même idée mais faites-le à l'envers.

+0

Bonne réponse, ça m'a fait penser à la façon dont j'implémente mes diapositives maintenant par rapport à ce que je * devrais être ... – Moshe