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. P>
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. p>
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. p>
Toute suggestion? P>
5 Réponses :
Je ne l'ai pas testé, mais j'essaierais quelque chose dans les lignes de: puis comparez les rectangles particuliers. P> P>
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. P>
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 } p> p>
Voici une variante de ce qui précède implémenté dans Swift: 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 . p> 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 . p> p> visibleheight code> ê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: p>
Vous pouvez essayer quelque chose comme ceci:
Merci Mate, je n'ai pas pensé à utiliser CGRectureInterSection, si évident maintenant!