J'ai une vue de table avec de nombreuses valeurs.
Je veux obtenir le premier Comment puis-je faire cela? P> i Obtenez une erreur suivante lors de la mise en œuvre de la réponse de Krishnabhadra: p> Ligne à laquelle l'erreur vient: strong> p> Qu'est-ce qui pourrait être faux? P> P> indexpath.row code> de la table qui est affiché actuellement. p>
5 Réponses :
Vous pouvez utiliser: qui retournera un nsarray d'objets UitablesViewCell, chacun représentant une cellule visible dans la vue de table réceptrice. P>
[auto.tableview visiblecells] code> p>
Vous pouvez utiliser la tableView indexpathsforvisiblerows code>
fonction, qui renvoie un nsarray code> de
nsindexpath code> pour tous visible
uitatifviewcell code>. De
indexpath.row code> Vous pouvez trouver votre index de tableau.
NSArray *visible = [tableView indexPathsForVisibleRows];
NSIndexPath *indexpath = (NSIndexPath*)[visible objectAtIndex:0];
Merci je vais essayer ça bientôt et revenir à vous :)
Où devrais-je écrire ce code? Sur CellfornatDindexpath code>?
Vous pouvez l'appeler à partir de n'importe où..Calculez-le où vous souhaitez la liste des cellules visibles ..
Je fais défiler jusqu'à une position, puis passez à un autre onglet dans ma barre d'onglets puis retournez sur la même tableView, puis je souhaite que la vue de table affiche les mêmes cellules qu'il affichait avant la commutation. Donc, dans ce cas, où devrais-je écrire le code?
Dans la fenêtre Viewwilldisappear du code, écrivez le code ci-dessus pour obtenir le index du tableau visible ... Ensuite, dans la fenêtre ViewWillappear utilisez ScrollProwatidExpath Fonction de votre TableView pour faire défiler jusqu'à l'indexPath que vous avez enregistré dans la matrice avant.
[self.myTableView visibleCells]; NSArray *anArrayOfIndexPath = [NSArray arrayWithArray:[self.myTableView indexPathsForVisibleRows]]; NSIndexPath *indexPath= [anArrayOfIndexPath lastObject]; Hope this will help you.
Totalement et exactement ce que je cherchais. Merci :)
Vous pouvez utiliser indexpathsforvisiblers
Valeur de retour < / p> Un tableau d'objets NsIndexPath représentant chacun une ligne d'index et d'index de la section qui identifient ensemble une ligne visible de la vue Tableau. Retourne nil si aucune ligne de lignes n'est visible. P> p>
Obtenir le numéro d'index exact au Centre actuellement affiché:
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { let middleIndex = ((tableView.indexPathsForVisibleRows?.first?.row)! + (tableView.indexPathsForVisibleRows?.last?.row)!)/2 print(middleIndex) }
actuellement affiché ou actuellement sélectionné par l'utilisateur?
J'ai demandé à moins que votre cellule ne soit si grosse de sorte qu'il couvre l'écran entier, plus d'une cellules y sont affichées
Aucune taille de cellule ne peut être faible ou il peut être important sur la base de la quantité de données
est-ce un tableau ou un seul objet nsindexpath
Vous devez transmettre l'objet IndexPath de votre tableau.Vérifiez si vous avez la bonne index de l'index.
Indexis est l'objet NsindexPath.