2013-04-23 4 views
-2

J'essaie de créer une vue personnalisée pouvant afficher une grande quantité de données, de la même manière que UITableView peut afficher plusieurs lignes de données. À l'heure actuelle, j'affiche les données dans un UIScrollView, mais après avoir rechargé les données plusieurs fois, mon application commence à recevoir des avertissements de mémoire.Comment charger une grande quantité de données dans une vue UITableview sans avertissement de mémoire?

Quelle est la bonne façon de concevoir une vue personnalisée pour afficher une grande quantité de données, et comment puis-je éviter ces avertissements de mémoire?

+0

Les données de base seraient un bon début. –

+0

Eh bien mon psychique ne répond pas à son téléphone atm pour m'en dire plus sur votre problème ... accrocher là je répondrai dès que je l'atteins;) – Tobi

+0

je reçois des données du serveur web. Je veux juste comprendre le mécanisme UITableView – user2311383

Répondre

2

Ce n'est pas le cas. UITableView ne charge que le nombre de lignes qu'il peut contenir à l'écran. Quand il a besoin de plus de lignes, il demande la source de données pour eux. Cela donne l'impression que la table contient toutes les données sans tout le temps nécessaire pour tout copier à la fois.

+0

oui mais ma question est de savoir comment cela fonctionne en interne? et comment UITableView gère une grande quantité de données? – user2311383

+1

@ user2311383 Vous avez demandé comment il gère de grandes quantités de données. La réponse, encore une fois, est qu'il ne gère pas de grandes quantités de données. Lorsque les cellules ne sont plus visibles (c'est-à-dire défilent sur l'écran), elles sont recyclées, de sorte qu'une table n'a jamais besoin de plus de quelques dizaines de cellules. – Caleb

+0

Oui, je suis affichage du flux dans UIScrollView qui fonctionne bien, mais après le chargement de nombreux flux app me donne la mémoire vermifuges – user2311383

0

Lorsque votre cellule tableView est trop lourde, elle possède imageView et plusieurs libellés de texte permettent de créer une cellule personnalisée en sous-classant le UITableView.

Assurez-vous que dans la cellule personnalisée, la sous-vue ne doit être ajoutée qu'une seule fois et réutilisée pour les cellules. Juste vous avez besoin d'envoyer l'image de l'imageview ou du texte de l'étiquette. Même si vous avez autant de cellules dans tableview, la performance sera bonne.

Et assurez-vous également que si vous chargez des images à partir du serveur, ne les récupérez pas à chaque fois que vous définissez l'image pour la cellule. utiliser le cache d'image.

Le lien suivant peut être utile pour le chargement de données à la vue de la table depuis le serveur.

http://www.raywenderlich.com/4295/multithreading-and-grand-central-dispatch-on-ios-for-beginners-tutorial

Questions connexes