2017-10-17 6 views
1

Soirée: J'ai une vue de défilement avec 3 vues à l'intérieur ..iOS rapide: scrollview ne remet pas didscrolltotop

J'ai un problème avec les délégués de ScrollView.

Le didscrolltotop est jamais appelé, alors que l'a fait défiler oui ...

Je ne comprends pas la raison ...

Toute aide?

enter image description here

+0

La propriété 'scrollsToTop' est-elle définie, conformément à la documentation de cette méthode? – Ssswift

+0

oui, il est, dans le viewdidload –

+0

Pouvez-vous fournir un MCVE? En ce moment nous pouvons seulement deviner. – Ssswift

Répondre

2

On dirait qu'il est seulement appelé dans certaines circonstances, les documentation parle de la scroll-to-top gesture ce qui signifie qu'il ne peut fonctionner après a tap on the status bar et non le défilement de base. La définition de la propriété scrollsToTop sur true semble également nécessaire.

La vue déroulante envoie ce message lorsque le défilement se termine en haut du contenu. Il pourrait l'appeler immédiatement si le haut du contenu est déjà affiché. Pour que le geste de défilement vers le haut (un clic sur la barre d'état) soit effectif, la propriété scrollsToTop de UIScrollView doit être définie sur YES.

Vous pouvez également détecter simplement le haut du contenu en utilisant le contentOffset

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    print("The current Y offset is \(scrollView.contentOffset.y)") 
    if scrollView.contentOffset.y == 0 { 
     print("we are at the top") 
    } 
} 

Vous pouvez également envisager d'utiliser la méthode scrollViewDidEndDecelerating pour ce qu'elle signifie que vous obtenez seulement un événement après le défilement la vue s'est installée.

+0

Déjà vu cette partie ... mais cela ne m'aide pas ... scrolltotop est déjà à –

+1

On dirait que vous ne pouvez pas faire quelque chose qu'il nécessite, avez-vous essayé d'utiliser la propriété 'contentOffset'? – Wez

+0

Je crois que cela n'est appelé que lorsque l'appui sur la barre d'état fait défiler le scrollview vers le haut. – DJSK