Changement textlabel dans les cellules statiques dans UITableView
J'ai un statique UITableView, le contenu de chaque cellule, j'ai fait dans le storyboard, mais j'ai besoin de changer texLabels de certaines cellules par programme pendant l'exécution. Comment puis-je le faire?
Super!!! Merci. Je ne sais pas qui textLabel a des propriétés de texte. Non, vous ne devez pas conserver toutes vos cellules, parce que vous devez réutiliser vos cellules, et de ne pas charger toutes les cellules de la mémoire, vous devez avoir seulement les cellules que vous êtes montrant chargé! Puisque ce sont des cellules statiques nous avons affaire, il n'y a probablement pas que beaucoup d'entre eux, de sorte que l'utilisation de la mémoire ne sera pas importante. Cependant, je suis d'accord que votre édité réponse est meilleure que la mienne, donc j'ai upvoted.
@ggrana noté un problème potentiel à voir avec la mémoire et de la cellule de réutilisation, cependant, ne vous inquiétez pas à ce sujet ...
Pour un UITableView avec des cellules Statiques tous les cellules sont instanciés, même avant le viewDidLoad est appelée sur votre UITableViewController et ne sont pas réutilisés dans la façon dont les dynamiques sont des cellules. En tant que tel, vous pouvez même juste prendre IBOutlets directement à la UITextFields, UISwitches, UILabels et les choses que vous êtes vraiment intéressé par ce que vous avez laissé tomber dans les cellules statiques dans le Storyboard.
Je ne savais pas que vous pouvez créer IBOutlets à partir de cellules statiques. Il faut creuser de plus en plus dans la documentation, je suppose.
Vous pouvez obtenir de la cellule à partir de votre tableau de vue à l'aide de la méthode cellForRowAtIndexPath, vous aurez besoin de définir une prise de courant qui récupère votre tableview.
__weak IBOutletUITableView*tableView;
après que vous pouvez obtenir à la cellule comme ça:
Peut-être qu'après mise en place du texte, vous devez ajuster votre étiquette ou votre hauteur de la cellule, si vous souhaitez un approfondissement de l'aider à fournir plus d'informations, et je serai heureux de vous aider.
Et vous avez terminé, j'espère que ça aide.
Vous n'avez pas besoin de déclarer une Prise de courant à la tableView, puisque vous êtes déjà à l'aide d'un UITableViewController. une UITableView configuré avec "Statique" cellules ne peut exister que dans le contexte d'un UITableViewController.
Créer une propriété pour chaque cellule que vous voulez changer dans votre table view controller, comme suit:
Connectez chacun à une cellule dans Interface Builder.
Quand vous avez seulement besoin de modifier le texte de l'étiquette, vous pouvez utiliser
Si vous avez besoin de remplacer tout le étiquette, utilisez
Non, vous ne devez pas conserver toutes vos cellules, parce que vous devez réutiliser vos cellules, et de ne pas charger toutes les cellules de la mémoire, vous devez avoir seulement les cellules que vous êtes montrant chargé!
Puisque ce sont des cellules statiques nous avons affaire, il n'y a probablement pas que beaucoup d'entre eux, de sorte que l'utilisation de la mémoire ne sera pas importante. Cependant, je suis d'accord que votre édité réponse est meilleure que la mienne, donc j'ai upvoted.
OriginalL'auteur Alyssa Ross
@RossPenman a affiché une bonne réponse.
@ggrana noté un problème potentiel à voir avec la mémoire et de la cellule de réutilisation, cependant, ne vous inquiétez pas à ce sujet ...
Pour un
UITableView
avec des cellules Statiques tous les cellules sont instanciés, même avant leviewDidLoad
est appelée sur votreUITableViewController
et ne sont pas réutilisés dans la façon dont les dynamiques sont des cellules. En tant que tel, vous pouvez même juste prendreIBOutlets
directement à laUITextFields
,UISwitches
,UILabels
et les choses que vous êtes vraiment intéressé par ce que vous avez laissé tomber dans les cellules statiques dans le Storyboard.IBOutlets
à partir de cellules statiques. Il faut creuser de plus en plus dans la documentation, je suppose.OriginalL'auteur Mike Pollard
J'ai besoin de cette.
OriginalL'auteur mishimay
Vous pouvez obtenir de la cellule à partir de votre tableau de vue à l'aide de la méthode cellForRowAtIndexPath, vous aurez besoin de définir une prise de courant qui récupère votre tableview.
après que vous pouvez obtenir à la cellule comme ça:
Peut-être qu'après mise en place du texte, vous devez ajuster votre étiquette ou votre hauteur de la cellule, si vous souhaitez un approfondissement de l'aider à fournir plus d'informations, et je serai heureux de vous aider.
Et vous avez terminé, j'espère que ça aide.
une UITableView configuré avec "Statique" cellules ne peut exister que dans le contexte d'un UITableViewController.
OriginalL'auteur ggrana
D'abord faire un IBOutlet de statique TableViewCell
puis dans le viewDidLoad changer le Nom de l'étiquette.
Remarque: Si vous avez attaché une étiquette sur TableViewCell alors que de les masquer à l'aide de storyboard.
OriginalL'auteur Sourabh Sharma
Espérons que cela fonctionne:
Je viens de coutume dans ce tableview du délégué:
Lorsque vous modifiez le texte:
OriginalL'auteur Tai Le
Vous pouvez faire quelque chose comme ceci
Aussi, assurez-vous de conserver vos changements de viewDidAppear et de les placer dans viewWillAppear ou vous serez confronté à des problèmes
OriginalL'auteur Shalom Friss
Votre pouvez l'essayer
OriginalL'auteur PacificOcean