7
votes

Utableview ne réutilise pas les cellules, bonne affaire pour faire cela?

J'ai 5 cellules dans une vision utile. Chacun a un Uitextfield en tant que sous-visVIEW, où l'utilisateur entrera des données. Si j'utilise la réutilisation de la cellule, le champ de texte est dégagé si les cellules sont défilées de la vue. Je ne veux pas avoir à gérer cela. Y a-t-il un moyen de ne pas réutiliser les cellules afin que je n'ai pas ce problème, si oui, comment?

Est-ce une mauvaise idée?


3 commentaires

Votre choix de réutiliser ou non n'arrêtera pas l'iOS de retirer les cellules de la table et de les libérer potentiellement. Peut-être que l'iOS ne retirera pas une cellule tant qu'elle a / est le premier répondeur (par exemple lors de la modification du champ de texte)


Kris - c'est bon à savoir. Donc, j'ai vraiment besoin de stocker mes utilisateurs saisir dans un tableau ou quelque chose de pour pouvoir le remettre dans le champ de texte lorsque la cellule fait défiler ...


Cela serait certainement plus sûr. Il se peut que vous puissiez éviter un déchargement simplement en conservant votre propre Cellviews, par ex. Dans un tableau.


4 Réponses :


2
votes

Vous pouvez donner à chaque cellule un réutilisateur unique, peut-être en ajoutant l'indexPath.row au nom. Si vous n'avez que 5 cellules, cela ira probablement bien, mais vous perdez l'un des principaux avantages d'un utableview . Dans ce cas, vous voudrez peut-être utiliser un Uiscrollview à la place.


0 commentaires

4
votes

J'ai la même fonctionnalité dans l'une de mes applications et j'ai utilisé ci-dessous le code pour accomplir cela et je n'ai jamais eu ce genre de problème.

Tout d'abord, vous devez enregistrer toute votre valeur Textfield temporaire dans la matrice. Fabriquez une matrice comme ceci. P>

cell.txtEntry.text = [arrTemp objectAtIndex:indexPath.row];


1 commentaires

[Nstring StringwithFormat: @ ""] est très curieux. Si votre objectif est d'obtenir un vide , pourquoi n'utiliseriez-vous pas simplement @ "" directement ou [nstring string] ?



0
votes

Je dirais que TextView's est un cas parfait pour ne pas faire la queue et la désentration des cellules, il suffit de les créer tout en vue de la charge, de stocker dans une matrice et de retour comme demandé.


0 commentaires

0
votes

Si vous ouvrez Recettes d'Apple's Recettes Exemplaire , vous verrez comment Apple utilise un fichier XIB pour charger utailviewCells.

dans le fichier IndedientDetailViewController: xxx

Bien que cela ressemble à la réutilisation de la cellule, vous pouvez utiliser la même méthode permettant de charger les 5 cellules dans 5 iboutlets distincts, puis dans les cellulesfortindindexpath, vous venez de renvoyer ces 5 plutôt que d'appeler la méthode de dequeuse.

Remarque: vous aurez probablement besoin de stocker les cellules comme Strong Propriétés (plutôt que Attribuer ing).


0 commentaires