J'ai un journal défilant potentiellement très long de messages dans une vision utile, l'utilisateur serait capable de naviguer sur la table en faisant défiler. p>
Qu'est-ce que j'essaie de faire est d'ajouter un nouveau contenu en haut de la table. Si le haut de la table est Je fais cela pour L'une des façons que je puisse essayer de mettre en œuvre ceci est par Merci! P>
3 Réponses :
Comment insérer sans heurter la vue: p>
TABLEVIEW CODE> S ( UISCrollView CODE>) ContentOffset CODE> Valeurs Pour rechercher où l'utilisateur est actuellement défilé. LI>
- Ajoutez la nouvelle ligne en haut, avec
animé: non code> li>
- Mettez à jour le
TableView code> 'S contentoffset code> Pour être où l'utilisateur était à plus de la hauteur de votre rangée. li>
ul>
Comment éviter de causer des problèmes lorsque l'utilisateur glisse: p>
- Gardez une trace de lorsque l'utilisateur glisse et si vous souhaitez insérer des lignes pendant une traînée / mouvement, ajoutez-les à une file d'attente exécutée après la sortie de l'utilisateur. LI>
ul>
Quelque chose me dit que cela doit être entouré de [TableView BeginUpdates] et de [TableView Endupdates] pour travailler de manière transparente. Ai-je raison?
Je ne le crois pas, bien que je n'ai même pas utilisé ces méthodes. Essayez-le sans et voyez ce qui se passe.
Au lieu d'utiliser Insercell, vous ajoutez la hauteur de la cellule à votre offset enregistré. À la fin, ReloadData et la mise à jour du décalage enregistré. Voir aussi: Stackoverflow.com/Questtions/4279730/...
J'ai essayé la même logique ci-dessus mais ne fonctionne pas. J'utilise Autolayout. En outre, la logique ci-dessus ne fonctionnera pas si le contenu INSET change après la recharge des données. Comme dans une application de discussion.
Vient de poster une réponse avec des extraits de code ici P>
Gardez UitailView statique lorsque vous insérez des rangées à le haut p>
Fondamentalement: P>
CGSize beforeContentSize = self.tableView.contentSize; [self.tableView reloadData]; CGSize afterContentSize = self.tableView.contentSize; CGPoint afterContentOffset = self.tableView.contentOffset; CGPoint newContentOffset = CGPointMake(afterContentOffset.x, afterContentOffset.y + afterContentSize.height - beforeContentSize.height); self.tableView.contentOffset = newContentOffset;
Dupliqué possible de Gardez UitailView statique lorsque vous insérez des lignes en haut a>