Comment savoir dans quel sens UITableView est le défilement
Est-il de toute façon pour nous de savoir si une UITableView
est le défilement dans la direction vers le haut ou du haut vers le bas?
Vous devez vous connecter pour publier un commentaire.
targetContentOffset
(c'est là que le défilement finirais après l'animation):if (scrollView.contentOffset.y<0){ // scroll is above 0,0 aka negative space where the refreshview would be }
Pourrions-nous faire comme cela?
UITableView
est unUIScrollView
sous-classe, ainsi vous pouvez définir vous-même commeUIScrollViewDelegate
et obtenir de défilement de la vue déléguer des rappels.L'argument en faveur de l'un de ces délégué méthodes (
-scrollViewDidScroll:
) est le défilement de la vue qui n'a de défilement, vous pouvez les comparer à vos vues de table pour savoir qui il était qui a défilé.Désolé, j'ai mal lu votre question. Je pensais que tu voulais savoir qui la vue de la table est en cours de défilement (j'ai raté le "chemin").
À savoir la direction que vous pouvez garder la précédente décalage dans une variable et de voir si le delta (actuelle.y - précédente.y) est positive (défilement vers le bas) ou négatif (défilement vers le haut).
Vous pouvez suivre la différence dans le contenu de l'offset. Garder l'ancien dans un état membre/une variable statique et vérifier à contre-courant. Si l'ancienne valeur est inférieure à la vitesse de défilement a été dirigée vers le bas et vice versa.
Vous pouvez le faire par la mise en œuvre de
UIScrollView
déléguée méthode de cette façon, il est gracieux.PS:
lastOffset
etscrollingUpward
est la propriété de ViewController.Ici vous devez remplacer votre tableview nom au lieu de "yourTableView".
yourTableView.isDragging - Il retourne OUI si l'utilisateur a commencé à défiler. cela peut prendre un certain temps et /ou de distance de mouvement de lancer.
yourTableView.isDecelerating - Il retourne OUI si l'utilisateur n'est pas en le faisant glisser (retouche) mais faites défiler la vue est toujours en mouvement.