7
votes

Comment dire à quel point un utableviewcell est visible

UitailView a des méthodes permettant de déterminer quelles cellules sont actuellement visibles. Ce que j'essaie de savoir, c'est combien une cellule est visible.

Par exemple, lorsque vous faites glisser une table vers le bas, la cellule "nouvellement visible" en haut de la table ne figure pas simplement, mais apparaît une ligne (pixel) à la fois jusqu'à ce que la cellule entière soit visible. Comment puis-je dire combien de cette cellule est visible à un moment donné car la vue de la table est entraînée.

Mon objectif final est que l'utilisateur fait glisser sur la table, pour modifier la vue apparente dans la cellule en fonction de la quantité de choses visibles à tout moment.

Toute suggestion?


0 commentaires

5 Réponses :


4
votes

Je ne l'ai pas testé, mais j'essaierais quelque chose dans les lignes de: xxx

puis comparez les rectangles particuliers.


0 commentaires

2
votes

voir réponse par Vadim Yelagin ici: https://stackoverflow.com/a/9843146/758298 qui explique comment Pour convertir un record de cellules dans la vue de la table des parents coordonnées et déterminer s'il est entièrement visible ou non.


0 commentaires

2
votes

J'ai utilisé les conseils de Bshirley et des autres pour faire quelque chose comme ça. Fonctionne comme un charme pour mes affaires qui ne montre que quelques cellules à la fois. Peut avoir besoin de peaufiner si vous souhaitez utiliser cela avec plus de cellules xxx

}


0 commentaires

8
votes

Voici une variante de ce qui précède implémenté dans Swift: xxx

visibleheight être la partie de la cellule visible. Une étape supplémentaire peut être ajoutée pour calculer le rapport entre zéro et une - de la cellule visible: xxx

pour changer d'apparition en fonction de la visibilité - comme la question indique ci-dessus - ce code devrait être inclus dans la vue Uiscrollview < / a> Délégué Superclass, Uiscrollviewelegate Méthode < a href = "https://developer.apple.com/library/ios/documentation/uikit/reeference/uiscrolliewelegate_protocol/index.html#//apple_ref/occ/intfm/uiscrollviewdelegate/scrollviewdidscroll:" rel = "noreferrer"> ScrollViefDidscroll .

Cependant, cela n'affectera que les cellules lorsqu'ils font défiler. Les cellules déjà visibles ne seraient pas affectées. Pour ceux-ci, le même code doit être appliqué dans le UitailViewelegate < / a> méthode didenddisplayingcell .


0 commentaires

7
votes

Vous pouvez essayer quelque chose comme ceci: xxx


1 commentaires

Merci Mate, je n'ai pas pensé à utiliser CGRectureInterSection, si évident maintenant!